Maemo Leste Wiki leste_wiki https://leste.maemo.org/Main_Page MediaWiki 1.36.0 first-letter Media Special Talk User User talk Maemo Leste Maemo Leste talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Module Module talk Main Page 0 1 1 2018-04-05T22:10:53Z MediaWiki default 0 wikitext text/x-wiki <strong>MediaWiki has been installed.</strong> Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki] 5702e4d5fd9173246331a889294caf01a3ad3706 2 1 2018-04-05T23:26:04Z Parazyd 1 Add our links. wikitext text/x-wiki <strong>Welcome to the Maemo Leste Wiki.</strong> Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io Maemo Leste Blog] Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/ Maemo Leste Github] b13acedb91e8a3e88c83edf632ca00340ddf7833 3 2 2018-04-05T23:26:47Z Parazyd 1 wikitext text/x-wiki <strong>Welcome to the Maemo Leste Wiki.</strong> Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] d1e585e2533a4c33fd389d085d42c5c3551c9434 4 3 2018-04-05T23:27:53Z Parazyd 1 Add bugtracker link. wikitext text/x-wiki <strong>Welcome to the Maemo Leste Wiki.</strong> Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] 8eb4c4ff4d087b3f278be7b9eb8e0de3315ecb50 5 4 2018-04-05T23:45:09Z Parazyd 1 Add IRC info. wikitext text/x-wiki <strong>Welcome to the Maemo Leste Wiki.</strong> Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] The central point of meeting and talking is IRC. You can find us on '''freenode''', channel '''#maemo-leste'''. 61183febce61838cc8cbf5228e5dc65ea216adaa 6 5 2018-04-06T09:04:07Z Wizzup 4 wikitext text/x-wiki <strong>Welcome to the Maemo Leste Wiki.</strong> Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. You can find us on '''freenode''', channel '''#maemo-leste'''. 7c0abc9068098183c504595aa1870e6fd2dfc586 9 6 2018-04-23T15:21:40Z Halftux 7 added link to images wikitext text/x-wiki <strong>Welcome to the Maemo Leste Wiki.</strong> Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. You can find us on '''freenode''', channel '''#maemo-leste'''. 8598df372c49f7d92a694f059026eecb7207cbe6 10 9 2018-04-27T17:04:32Z Halftux 7 created basic structure wikitext text/x-wiki = Description = Welcome to the Maemo Leste website; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] &nbsp; == N9/N950 == &nbsp; == Droid 4 == &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> 6b5fcd33934a3153ddce8a0134d8d595d7b21ab2 11 10 2018-04-27T19:49:13Z Halftux 7 structure, description update wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: [https://github.com/pali/linux-n900 https://github.com/pali/linux-n900] &nbsp; == N9/N950 == &nbsp; == Droid 4 == &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> 229b83246bad10b39b9b79b4e960665c53718f52 12 11 2018-04-28T21:29:41Z Derby 3 /* N9/N950 */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: [https://github.com/pali/linux-n900 https://github.com/pali/linux-n900] &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' === Kernel development === Linux 4.16.4 plus patches ([https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9]) N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y] &nbsp; == Droid 4 == &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> 615fbccf97d48b6f600f6f37f8617d0d1cbb089a 13 12 2018-04-28T21:32:57Z Derby 3 /* Kernel development */ Link to tree used for Leste kernel wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' === Kernel development === Linux 4.16.4 plus patches ([https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9]) N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y] &nbsp; == Droid 4 == &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> 077163b37da73a7d628b10d460fc0624ac55bf97 14 13 2018-04-28T21:37:13Z Derby 3 /* Kernel development */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> d28c1d68502889af309643752d41f72459fbeb11 15 14 2018-04-28T21:56:51Z Derby 3 /* Droid 4 */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> abcfb03099eeeaf490bc46f6f59efe16a77e00fb 16 15 2018-04-29T16:00:16Z JLIT99 8 /* Links */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] e14dcfe7807943644a1f181afbf26d4853949cfb 17 16 2018-04-30T14:52:05Z Derby 3 Added Roadmap section with milestones link wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 99f0b168207860a3870ef6347530956d59831f69 18 17 2018-05-05T16:06:26Z Derby 3 /* Installation */ Add installation instructions for N9/N950 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmatan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] cdc2cd7f9acd0ad5fbb3aee6a07b5c987ae53ecc 19 18 2018-05-05T20:32:50Z Derby 3 /* N9/N950 */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 95ff523c10e0bc029faa9abd977097da3a9c8196 20 19 2018-05-12T20:24:31Z Sicelo 5 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Known Issues and workarounds === === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needed testing == &nbsp; == Packages needed building == &nbsp; == Packages needed porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] bb3b011dd5851a7f820488b1b2c779bca9046395 User talk:Mike727 3 2 7 2018-04-06T11:39:45Z Mike727 6 Created page with "'''Background''' A majority of consumer hand-held devices have been designed to run Android or iOS (~consequently, the hardware architecture is generally not an ideal platfor..." wikitext text/x-wiki '''Background''' A majority of consumer hand-held devices have been designed to run Android or iOS (~consequently, the hardware architecture is generally not an ideal platform for running a Linux distro). For some, these platforms are not ideal since they clash with certain ideologies; which can deem them inadequate or restrictive. There has been various initiatives for creating or branching from these platforms where various communities strive to make (~improvements/overcome flaws). Some initiatives have achieved installing a Linux distribution on top of the Android kernel. Cite: http://talk.maemo.org/showpost.php?p=1542529&postcount=44 ---- '''FAQ''' Q. How does Maemo Leste (7) differ to Maemo 5? Q. What is 'mainline Linux' support? fe294ded8c85c2abfd5eeb044e4b328a156fdc1d 8 7 2018-04-06T11:48:26Z Mike727 6 wikitext text/x-wiki '''Background''' A majority of consumer hand-held devices have been designed to run Android or iOS (~consequently, the hardware architecture is generally not an ideal platform for running a Linux distro). For some, these platforms are not ideal since they clash with certain ideologies; which can deem them inadequate or restrictive. There has been various initiatives for creating or branching from these platforms where various communities strive to make (~improvements/overcome flaws). Some initiatives have achieved installing a Linux distribution on top of the Android kernel. Cite: http://talk.maemo.org/showpost.php?p=1542529&postcount=44 ---- '''FAQ''' Q. How does Maemo Leste (7) differ to Maemo 5? Q. What is 'mainline Linux' support? Q. Will Maemo Leste work on ...(device)? A. (cite: http://talk.maemo.org/showpost.php?p=1540157&postcount=20) 9a81161a88525d21fcbd84e834704ed584704bef MediaWiki:Common.css 8 3 21 2018-05-21T20:30:50Z Wizzup 4 Created page with "/* Reset italic styling set by user agent */ cite, dfn { font-style: inherit; } /* Straight quote marks for <q> */ q { quotes: '"' '"' "'" "'"; } /* Avoid collision of blo..." css text/css /* Reset italic styling set by user agent */ cite, dfn { font-style: inherit; } /* Straight quote marks for <q> */ q { quotes: '"' '"' "'" "'"; } /* Avoid collision of blockquote with floating elements by swapping margin and padding */ blockquote { overflow: hidden; margin: 1em 0; padding: 0 40px; } /* Prevent the 'double bold' bug in Firefox when using DirectWrite */ strong.selflink { font-weight: 700; } /* Consistent size for <small>, <sub> and <sup> */ small { font-size: 85%; } .mw-body-content sub, .mw-body-content sup, span.reference /* for Parsoid */ { font-size: 80%; } /* Same spacing for indented and unidented paragraphs on talk pages */ .ns-talk .mw-body-content dd { margin-top: 0.4em; margin-bottom: 0.4em; } /* Main page fixes */ #interwiki-completelist { font-weight: bold; } /* Reduce page jumps by hiding collapsed/dismissed content */ .client-js .mw-special-Watchlist #watchlist-message, .client-js .NavFrame.collapsed .NavContent, .client-js .collapsible.collapsed > tbody > tr:not(:first-child) { display: none; } /* Edit window toolbar */ #toolbar { margin-bottom: 6px; } /* Hide charinsert base for those not using the gadget */ #editpage-specialchars { display: none; } /* Highlight linked elements (such as clicked references) in blue */ body.action-info .mw-body-content :target, .citation:target { background-color: #DEF; /* Fallback */ background-color: rgba(0, 127, 255, 0.133); } /* Styling for citations. Breaks long urls, etc., rather than overflowing box */ .citation { word-wrap: break-word; } /* For linked citation numbers and document IDs, where the number need not be shown on a screen or a handheld, but should be included in the printed version */ @media screen, handheld { .citation .printonly { display: none; } } /* Make the list of references smaller */ ol.references, div.reflist, div.refbegin { font-size: 90%; /* Default font-size */ margin-bottom: 0.5em; } div.refbegin-100 { font-size: 100%; /* Option for normal fontsize in {{refbegin}} */ } div.reflist ol.references { font-size: 100%; /* Reset font-size when nested in div.reflist */ margin-bottom: 0; /* Avoid double margin when nested in div.reflist */ list-style-type: inherit; /* Enable custom list style types */ } /* Ensure refs in table headers and the like aren't bold or italic */ sup.reference { font-weight: normal; font-style: normal; } /* Allow hidden ref errors to be shown by user CSS */ span.brokenref { display: none; } /* Hanging indentation for Template:Refbegin */ .refbegin-hanging-indents > ul { list-style-type: none; margin-left: 0; } .refbegin-hanging-indents > ul > li, .refbegin-hanging-indents > dl > dd { margin-left: 0; padding-left: 3.2em; text-indent: -3.2em; list-style: none; } /* Reset top margin for lists embedded in columns */ div.columns { margin-top: 0.3em; } div.columns dl, div.columns ol, div.columns ul { margin-top: 0; } /* Avoid elements from breaking between columns */ .nocolbreak, div.columns li, div.columns dd dd { -webkit-column-break-inside: avoid; page-break-inside: avoid; break-inside: avoid-column; } /* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */ .flowlist ul { overflow-x: hidden; margin-left: 0; padding-left: 1.6em; } .flowlist ol { overflow-x: hidden; margin-left: 0; padding-left: 3.2em; } .flowlist dl { overflow-x: hidden; } /* Style for horizontal lists (separator following item). @source mediawiki.org/wiki/Snippets/Horizontal_lists @revision 8 (2016-05-21) @author [[User:Edokter]] */ .hlist dl, .hlist ol, .hlist ul { margin: 0; padding: 0; } /* Display list items inline */ .hlist dd, .hlist dt, .hlist li { margin: 0; display: inline; } /* Display nested lists inline */ .hlist.inline, .hlist.inline dl, .hlist.inline ol, .hlist.inline ul, .hlist dl dl, .hlist dl ol, .hlist dl ul, .hlist ol dl, .hlist ol ol, .hlist ol ul, .hlist ul dl, .hlist ul ol, .hlist ul ul { display: inline; } /* Hide empty list items */ .hlist .mw-empty-li { display: none; } /* Generate interpuncts */ .hlist dt:after { content: ": "; } .hlist dd:after, .hlist li:after { content: " · "; font-weight: bold; } .hlist dd:last-child:after, .hlist dt:last-child:after, .hlist li:last-child:after { content: none; } /* Add parentheses around nested lists */ .hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before, .hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before, .hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before { content: " ("; font-weight: normal; } .hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after, .hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after, .hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after { content: ")"; font-weight: normal; } /* Put ordinals in front of ordered list items */ .hlist ol { counter-reset: listitem; } .hlist ol > li { counter-increment: listitem; } .hlist ol > li:before { content: " " counter(listitem) "\a0"; } .hlist dd ol > li:first-child:before, .hlist dt ol > li:first-child:before, .hlist li ol > li:first-child:before { content: " (" counter(listitem) "\a0"; } /* Unbulleted lists */ .plainlist ol, .plainlist ul { line-height: inherit; list-style: none none; margin: 0; } .plainlist ol li, .plainlist ul li { margin-bottom: 0; } /* Default style for navigation boxes */ .navbox { /* Navbox container style */ box-sizing: border-box; border: 1px solid #a2a9b1; width: 100%; clear: both; font-size: 88%; text-align: center; padding: 1px; margin: 1em auto 0; /* Prevent preceding content from clinging to navboxes */ } .navbox .navbox { margin-top: 0; /* No top margin for nested navboxes */ } .navbox + .navbox { margin-top: -1px; /* Single pixel border between adjacent navboxes */ } .navbox-inner, .navbox-subgroup { width: 100%; } .navbox-group, .navbox-title, .navbox-abovebelow { padding: 0.25em 1em; /* Title, group and above/below styles */ line-height: 1.5em; text-align: center; } th.navbox-group { /* Group style */ white-space: nowrap; /* @noflip */ text-align: right; } .navbox, .navbox-subgroup { background: #fdfdfd; /* Background color */ } .navbox-list { line-height: 1.5em; border-color: #fdfdfd; /* Must match background color */ } /* cell spacing for navbox cells */ tr + tr > .navbox-abovebelow, tr + tr > .navbox-group, tr + tr > .navbox-image, tr + tr > .navbox-list { /* Borders above 2nd, 3rd, etc. rows */ border-top: 2px solid #fdfdfd; /* Must match background color */ } .navbox th, .navbox-title { background: #ccccff; /* Level 1 color */ } .navbox-abovebelow, th.navbox-group, .navbox-subgroup .navbox-title { background: #ddddff; /* Level 2 color */ } .navbox-subgroup .navbox-group, .navbox-subgroup .navbox-abovebelow { background: #e6e6ff; /* Level 3 color */ } .navbox-even { background: #f7f7f7; /* Even row striping */ } .navbox-odd { background: transparent; /* Odd row striping */ } .navbox .hlist td dl, .navbox .hlist td ol, .navbox .hlist td ul, .navbox td.hlist dl, .navbox td.hlist ol, .navbox td.hlist ul { padding: 0.125em 0; /* Adjust hlist padding in navboxes */ } /* Default styling for Navbar template */ .navbar { display: inline; font-size: 88%; font-weight: normal; } .navbar ul { display: inline; white-space: nowrap; } .mw-body-content .navbar ul { line-height: inherit; } .navbar li { word-spacing: -0.125em; } .navbar.mini li abbr[title] { font-variant: small-caps; border-bottom: none; text-decoration: none; cursor: inherit; } /* Navbar styling when nested in infobox and navbox */ .infobox .navbar { font-size: 100%; } .navbox .navbar { display: block; font-size: 100%; } .navbox-title .navbar { /* @noflip */ float: left; /* @noflip */ text-align: left; /* @noflip */ margin-right: 0.5em; } /* 'show'/'hide' buttons created dynamically by the CollapsibleTables javascript in [[MediaWiki:Common.js]] are styled here so they can be customised. */ .collapseButton { /* @noflip */ float: right; font-weight: normal; /* @noflip */ margin-left: 0.5em; /* @noflip */ text-align: right; width: auto; } /* Styling for JQuery makeCollapsible, matching that of collapseButton */ .mw-parser-output .mw-collapsible-toggle { font-weight: normal; /* @noflip */ text-align: right; padding-right: 0.2em; padding-left: 0.2em; } .mw-collapsible-leftside-toggle .mw-collapsible-toggle { /* @noflip */ float: left; /* @noflip */ text-align: left; } /* Infobox template style */ .infobox { border: 1px solid #a2a9b1; border-spacing: 3px; background-color: #f8f9fa; color: black; /* @noflip */ margin: 0.5em 0 0.5em 1em; padding: 0.2em; /* @noflip */ float: right; /* @noflip */ clear: right; font-size: 88%; line-height: 1.5em; } .infobox caption { font-size: 125%; font-weight: bold; padding: 0.2em; text-align: center; } .infobox td, .infobox th { vertical-align: top; /* @noflip */ text-align: left; } .infobox.bordered { border-collapse: collapse; } .infobox.bordered td, .infobox.bordered th { border: 1px solid #a2a9b1; } .infobox.bordered .borderless td, .infobox.bordered .borderless th { border: 0; } .infobox.sisterproject { width: 20em; font-size: 90%; } .infobox.standard-talk { border: 1px solid #c0c090; background-color: #f8eaba; } .infobox.standard-talk.bordered td, .infobox.standard-talk.bordered th { border: 1px solid #c0c090; } /* styles for bordered infobox with merged rows */ .infobox.bordered .mergedtoprow td, .infobox.bordered .mergedtoprow th { border: 0; border-top: 1px solid #a2a9b1; /* @noflip */ border-right: 1px solid #a2a9b1; } .infobox.bordered .mergedrow td, .infobox.bordered .mergedrow th { border: 0; /* @noflip */ border-right: 1px solid #a2a9b1; } /* Styles for geography infoboxes, eg countries, country subdivisions, cities, etc. */ .infobox.geography { border-collapse: collapse; line-height: 1.2em; font-size: 90%; } .infobox.geography td, .infobox.geography th { border-top: 1px solid #a2a9b1; padding: 0.4em 0.6em 0.4em 0.6em; } .infobox.geography .mergedtoprow td, .infobox.geography .mergedtoprow th { border-top: 1px solid #a2a9b1; padding: 0.4em 0.6em 0.2em 0.6em; } .infobox.geography .mergedrow td, .infobox.geography .mergedrow th { border: 0; padding: 0 0.6em 0.2em 0.6em; } .infobox.geography .mergedbottomrow td, .infobox.geography .mergedbottomrow th { border-top: 0; border-bottom: 1px solid #a2a9b1; padding: 0 0.6em 0.4em 0.6em; } .infobox.geography .maptable td, .infobox.geography .maptable th { border: 0; padding: 0; } /* Normal font styling for table row headers with scope="row" tag */ .wikitable.plainrowheaders th[scope=row] { font-weight: normal; /* @noflip */ text-align: left; } /* Lists in data cells are always left-aligned */ .wikitable td ul, .wikitable td ol, .wikitable td dl { /* @noflip */ text-align: left; } /* ...unless they also use the hlist class */ .toc.hlist ul, #toc.hlist ul, .wikitable.hlist td ul, .wikitable.hlist td ol, .wikitable.hlist td dl { text-align: inherit; } /* Icons for medialist templates [[Template:Listen]], [[Template:Multi-listen_start]], [[Template:Video]], [[Template:Multi-video_start]] */ div.listenlist { background: url("//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg") no-repeat scroll 0 0 transparent; background-size: 30px; padding-left: 40px; } /* Fix for hieroglyphs specificality issue in infoboxes ([[Phabricator:43869]]) */ table.mw-hiero-table td { vertical-align: middle; } /* Style rules for media list templates */ div.medialist { min-height: 50px; margin: 1em; /* @noflip */ background-position: top left; background-repeat: no-repeat; } div.medialist ul { list-style-type: none; list-style-image: none; margin: 0; } div.medialist ul li { padding-bottom: 0.5em; } div.medialist ul li li { font-size: 91%; padding-bottom: 0; } /* Change the external link icon to an Adobe icon for all PDF files in browsers that support these CSS selectors, like Mozilla and Opera */ div#content a[href$=".pdf"].external, div#content a[href*=".pdf?"].external, div#content a[href*=".pdf#"].external, div#content a[href$=".PDF"].external, div#content a[href*=".PDF?"].external, div#content a[href*=".PDF#"].external, div#mw_content a[href$=".pdf"].external, div#mw_content a[href*=".pdf?"].external, div#mw_content a[href*=".pdf#"].external, div#mw_content a[href$=".PDF"].external, div#mw_content a[href*=".PDF?"].external, div#mw_content a[href*=".PDF#"].external { background: url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right; /* @noflip */ padding-right: 18px; } /* Content in columns with CSS instead of tables ([[Template:Columns]]) */ div.columns-2 div.column { /* @noflip */ float: left; width: 50%; min-width: 300px; } div.columns-3 div.column { /* @noflip */ float: left; width: 33.3%; min-width: 200px; } div.columns-4 div.column { /* @noflip */ float: left; width: 25%; min-width: 150px; } div.columns-5 div.column { /* @noflip */ float: left; width: 20%; min-width: 120px; } /* Messagebox templates */ .messagebox { border: 1px solid #a2a9b1; background-color: #f8f9fa; width: 80%; margin: 0 auto 1em auto; padding: .2em; } .messagebox.merge { border: 1px solid #c0b8cc; background-color: #f0e5ff; text-align: center; } .messagebox.cleanup { border: 1px solid #9f9fff; background-color: #efefff; text-align: center; } .messagebox.standard-talk { border: 1px solid #c0c090; background-color: #f8eaba; margin: 4px auto; } /* For old WikiProject banners inside banner shells. */ .mbox-inside .standard-talk, .messagebox.nested-talk { border: 1px solid #c0c090; background-color: #f8eaba; width: 100%; margin: 2px 0; padding: 2px; } .messagebox.small { width: 238px; font-size: 85%; /* @noflip */ float: right; clear: both; /* @noflip */ margin: 0 0 1em 1em; line-height: 1.25em; } .messagebox.small-talk { width: 238px; font-size: 85%; /* @noflip */ float: right; clear: both; /* @noflip */ margin: 0 0 1em 1em; line-height: 1.25em; background: #F8EABA; } /* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */ th.mbox-text, td.mbox-text { /* The message body cell(s) */ border: none; /* @noflip */ padding: 0.25em 0.9em; /* 0.9em left/right */ width: 100%; /* Make all mboxes the same width regardless of text length */ } td.mbox-image { /* The left image cell */ border: none; /* @noflip */ padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */ text-align: center; } td.mbox-imageright { /* The right image cell */ border: none; /* @noflip */ padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */ text-align: center; } td.mbox-empty-cell { /* An empty narrow cell */ border: none; padding: 0; width: 1px; } /* Article message box styles */ table.ambox { margin: 0 10%; /* 10% = Will not overlap with other elements */ border: 1px solid #a2a9b1; /* @noflip */ border-left: 10px solid #36c; /* Default "notice" blue */ background: #fbfbfb; } table.ambox + table.ambox { /* Single border between stacked boxes. */ margin-top: -1px; } .ambox th.mbox-text, .ambox td.mbox-text { /* The message body cell(s) */ padding: 0.25em 0.5em; /* 0.5em left/right */ } .ambox td.mbox-image { /* The left image cell */ /* @noflip */ padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */ } .ambox td.mbox-imageright { /* The right image cell */ /* @noflip */ padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */ } table.ambox-notice { /* @noflip */ border-left: 10px solid #36c; /* Blue */ } table.ambox-speedy { /* @noflip */ border-left: 10px solid #b32424; /* Red */ background: #fee7e6; /* Pink */ } table.ambox-delete { /* @noflip */ border-left: 10px solid #b32424; /* Red */ } table.ambox-content { /* @noflip */ border-left: 10px solid #f28500; /* Orange */ } table.ambox-style { /* @noflip */ border-left: 10px solid #fc3; /* Yellow */ } table.ambox-move { /* @noflip */ border-left: 10px solid #9932cc; /* Purple */ } table.ambox-protection { /* @noflip */ border-left: 10px solid #a2a9b1; /* Gray-gold */ } /* Image message box styles */ table.imbox { margin: 4px 10%; border-collapse: collapse; border: 3px solid #36c; /* Default "notice" blue */ background: #fbfbfb; } .imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */ margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */ display: block; /* Fix for webkit to force 100% width. */ } .mbox-inside .imbox { /* For imboxes inside other templates. */ margin: 4px; } table.imbox-notice { border: 3px solid #36c; /* Blue */ } table.imbox-speedy { border: 3px solid #b32424; /* Red */ background: #fee7e6; /* Pink */ } table.imbox-delete { border: 3px solid #b32424; /* Red */ } table.imbox-content { border: 3px solid #f28500; /* Orange */ } table.imbox-style { border: 3px solid #fc3; /* Yellow */ } table.imbox-move { border: 3px solid #9932cc; /* Purple */ } table.imbox-protection { border: 3px solid #a2a9b1; /* Gray-gold */ } table.imbox-license { border: 3px solid #88a; /* Dark gray */ background: #f7f8ff; /* Light gray */ } table.imbox-featured { border: 3px solid #cba135; /* Brown-gold */ } /* Category message box styles */ table.cmbox { margin: 3px 10%; border-collapse: collapse; border: 1px solid #a2a9b1; background: #DFE8FF; /* Default "notice" blue */ } table.cmbox-notice { background: #D8E8FF; /* Blue */ } table.cmbox-speedy { margin-top: 4px; margin-bottom: 4px; border: 4px solid #b32424; /* Red */ background: #FFDBDB; /* Pink */ } table.cmbox-delete { background: #FFDBDB; /* Red */ } table.cmbox-content { background: #FFE7CE; /* Orange */ } table.cmbox-style { background: #FFF9DB; /* Yellow */ } table.cmbox-move { background: #E4D8FF; /* Purple */ } table.cmbox-protection { background: #EFEFE1; /* Gray-gold */ } /* Other pages message box styles */ table.ombox { margin: 4px 10%; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background: #f8f9fa; } table.ombox-notice { border: 1px solid #a2a9b1; /* Gray */ } table.ombox-speedy { border: 2px solid #b32424; /* Red */ background: #fee7e6; /* Pink */ } table.ombox-delete { border: 2px solid #b32424; /* Red */ } table.ombox-content { border: 1px solid #f28500; /* Orange */ } table.ombox-style { border: 1px solid #fc3; /* Yellow */ } table.ombox-move { border: 1px solid #9932cc; /* Purple */ } table.ombox-protection { border: 2px solid #a2a9b1; /* Gray-gold */ } /* Talk page message box styles */ table.tmbox { margin: 4px 10%; border-collapse: collapse; border: 1px solid #c0c090; /* Default "notice" gray-brown */ background: #f8eaba; min-width: 80%; } .tmbox.mbox-small { min-width: 0; /* reset the min-width of tmbox above */ } .mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */ margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */ width: 100%; /* For Safari and Opera */ } .mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */ line-height: 1.5em; /* also "nested", so reset styles that are */ font-size: 100%; /* set in "mbox-small" above. */ } table.tmbox-speedy { border: 2px solid #b32424; /* Red */ background: #fee7e6; /* Pink */ } table.tmbox-delete { border: 2px solid #b32424; /* Red */ } table.tmbox-content { border: 2px solid #f28500; /* Orange */ } table.tmbox-style { border: 2px solid #fc3; /* Yellow */ } table.tmbox-move { border: 2px solid #9932cc; /* Purple */ } table.tmbox-protection, table.tmbox-notice { border: 1px solid #c0c090; /* Gray-brown */ } /* Disambig and set index box styles */ table.dmbox { clear: both; margin: 0.9em 1em; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; background: transparent; } /* Footer and header message box styles */ table.fmbox { clear: both; margin: 0.2em 0; width: 100%; border: 1px solid #a2a9b1; background: #f8f9fa; /* Default "system" gray */ } table.fmbox-system { background: #f8f9fa; } table.fmbox-warning { border: 1px solid #bb7070; /* Dark pink */ background: #ffdbdb; /* Pink */ } table.fmbox-editnotice { background: transparent; } /* Div based "warning" style fmbox messages. */ div.mw-warning-with-logexcerpt, div.mw-lag-warn-high, div.mw-cascadeprotectedwarning, div#mw-protect-cascadeon, div.titleblacklist-warning, div.locked-warning { clear: both; margin: 0.2em 0; border: 1px solid #bb7070; background: #ffdbdb; padding: 0.25em 0.9em; } /* These mbox-small classes must be placed after all other ambox/tmbox/ombox etc classes. "html body.mediawiki" is so they override "table.ambox + table.ambox" above. */ html body.mediawiki .mbox-small { /* For the "small=yes" option. */ /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; box-sizing: border-box; width: 238px; font-size: 88%; line-height: 1.25em; } html body.mediawiki .mbox-small-left { /* For the "small=left" option. */ /* @noflip */ margin: 4px 1em 4px 0; box-sizing: border-box; overflow: hidden; width: 238px; border-collapse: collapse; font-size: 88%; line-height: 1.25em; } /* Style for compact ambox */ /* Hide the images */ .compact-ambox table .mbox-image, .compact-ambox table .mbox-imageright, .compact-ambox table .mbox-empty-cell { display: none; } /* Remove borders, backgrounds, padding, etc. */ .compact-ambox table.ambox { border: none; border-collapse: collapse; background: transparent; margin: 0 0 0 1.6em !important; padding: 0 !important; width: auto; display: block; } body.mediawiki .compact-ambox table.mbox-small-left { font-size: 100%; width: auto; margin: 0; } /* Style the text cell as a list item and remove its padding */ .compact-ambox table .mbox-text { padding: 0 !important; margin: 0 !important; } .compact-ambox table .mbox-text-span { display: list-item; line-height: 1.5em; list-style-type: square; list-style-image: url(/w/skins/MonoBook/bullet.gif); } .skin-vector .compact-ambox table .mbox-text-span { list-style-type: disc; list-style-image: url(/w/skins/Vector/images/bullet-icon.svg); list-style-image: url(/w/skins/Vector/images/bullet-icon.png)\9; } /* Allow for hiding text in compact form */ .compact-ambox .hide-when-compact { display: none; } /* Remove default styles for [[MediaWiki:Noarticletext]]. */ div.noarticletext { border: none; background: transparent; padding: 0; } /* Hide (formatting) elements from screen, but not from screenreaders */ .visualhide { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; } /* suppress missing interwiki image links where #ifexist cannot be used due to high number of requests see .hidden-redlink on [[m:MediaWiki:Common.css]] */ .check-icon a.new { display: none; speak: none; } /* Removes underlines from certain links */ .nounderlines a, .IPA a:link, .IPA a:visited { text-decoration: none !important; } /* Standard Navigationsleisten, aka box hiding thingy from .de. Documentation at [[Wikipedia:NavFrame]]. */ div.NavFrame { margin: 0; padding: 4px; border: 1px solid #a2a9b1; text-align: center; border-collapse: collapse; font-size: 95%; } div.NavFrame + div.NavFrame { border-top-style: none; border-top-style: hidden; } div.NavPic { background-color: #fff; margin: 0; padding: 2px; /* @noflip */ float: left; } div.NavFrame div.NavHead { line-height: 1.6em; font-weight: bold; background-color: #ccf; position: relative; } div.NavFrame p, div.NavFrame div.NavContent, div.NavFrame div.NavContent p { font-size: 100%; } div.NavEnd { margin: 0; padding: 0; line-height: 1px; clear: both; } a.NavToggle { position: absolute; top: 0; /* @noflip */ right: 3px; font-weight: normal; font-size: 90%; } /* Hatnotes and disambiguation notices */ .hatnote { font-style: italic; } .hatnote i { font-style: normal; } div.hatnote { /* @noflip */ padding-left: 1.6em; margin-bottom: 0.5em; } div.hatnote + div.hatnote { margin-top: -0.5em; } /* Allow transcluded pages to display in lists rather than a table. */ .listify td { display: list-item; } .listify tr { display: block; } .listify table { display: block; } /* Geographical coordinates defaults. See [[Template:Coord/link]] for how these are used. The classes "geo", "longitude", and "latitude" are used by the [[Geo microformat]]. */ .geo-default, .geo-dms, .geo-dec { display: inline; } .geo-nondefault, .geo-multi-punct { display: none; } .longitude, .latitude { white-space: nowrap; } /* Temporary(!) fix for horizontal TOC in Blink (Chrone/Opera) */ .hlist .tocnumber, .hlist .toctext { display: inline; } /* When <div class="nonumtoc"> is used on the table of contents, the ToC will display without numbers */ .nonumtoc .tocnumber { display: none; } .nonumtoc #toc ul, .nonumtoc .toc ul { line-height: 1.5em; list-style: none none; margin: .3em 0 0; padding: 0; } .hlist.nonumtoc #toc ul ul, .hlist.nonumtoc .toc ul ul { /* @noflip */ margin: 0; } /* Allow limiting of which header levels are shown in a TOC; <div class="toclimit-3">, for instance, will limit to showing ==headings== and ===headings=== but no further (as long as there are no =headings= on the page, which there shouldn't be according to the MoS). */ .toclimit-2 .toclevel-1 ul, .toclimit-3 .toclevel-2 ul, .toclimit-4 .toclevel-3 ul, .toclimit-5 .toclevel-4 ul, .toclimit-6 .toclevel-5 ul, .toclimit-7 .toclevel-6 ul { display: none; } /* Styling for Template:Quote */ blockquote.templatequote div.templatequotecite { line-height: 1.5em; /* @noflip */ text-align: left; /* @noflip */ padding-left: 1.6em; margin-top: 0; } /* User block messages */ div.user-block { padding: 5px; margin-bottom: 0.5em; border: 1px solid #A9A9A9; background-color: #FFEFD5; } /* Prevent line breaks in silly places: 1) Where desired 2) Links when we don't want them to 3) Bold "links" to the page itself */ .nowrap, .nowraplinks a, .nowraplinks .selflink { white-space: nowrap; } .nowrap pre { white-space: pre; } /* But allow wrapping where desired: */ .wrap, .wraplinks a { white-space: normal; } /* For template documentation */ .template-documentation { clear: both; margin: 1em 0 0 0; border: 1px solid #a2a9b1; background-color: #ecfcf4; padding: 1em; } /* Increase the height of the image upload box */ #wpUploadDescription { height: 13em; } /* Minimum thumb width */ .thumbinner { min-width: 100px; } /* Prevent floating boxes from overlapping any category listings, file histories, edit previews, and edit [Show changes] views. */ #mw-subcategories, #mw-pages, #mw-category-media, #filehistory, #wikiPreview, #wikiDiff { clear: both; } /* Selectively hide headers in WikiProject banners */ .wpb .wpb-header { display: none; } .wpbs-inner .wpb .wpb-header { display: block; } /* for IE */ .wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */ .wpbs-inner .wpb-outside { display: none; } /* hide things that should only display outside shells */ /* Styling for Abuse Filter tags */ .mw-tag-markers { font-style:italic; font-size:90%; } /* Hide stuff meant for accounts with special permissions. Made visible again in [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-patroller.css]], [[MediaWiki:Group-templateeditor.css]], [[MediaWiki:Group-extendedmover.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */ .sysop-show, .templateeditor-show, .extendedmover-show, .patroller-show, .autoconfirmed-show, .user-show { display: none; } /** * Hide the redlink generated by {{Editnotice}}, * this overrides the ".sysop-show { display: none; }" above that applies * to the same link as well. See [[phab:T45013]] * * Hide the images in editnotices to keep them readable in VE view. * Long term, editnotices should become a core feature so that they can be designed responsive. */ .ve-ui-mwNoticesPopupTool-item .editnotice-redlink, .ve-ui-mwNoticesPopupTool-item .mbox-image, .ve-ui-mwNoticesPopupTool-item .mbox-imageright { display: none !important; } /* Remove bullets when there are multiple edit page warnings */ ul.permissions-errors > li { list-style: none none; } ul.permissions-errors { margin: 0; } /* Pie chart: transparent borders */ .transborder { border: solid transparent; } /* Generic class for Times-based serif, texhtml class for inline math */ .times-serif, span.texhtml { font-family: "Nimbus Roman No9 L", "Times New Roman", Times, serif; font-size: 118%; line-height: 1; } span.texhtml { white-space: nowrap; } span.texhtml span.texhtml { font-size: 100%; } span.mwe-math-mathml-inline { font-size: 118%; } /* Force tabular and lining display for digits and texhtml */ .digits, .texhtml { -moz-font-feature-settings: "lnum", "tnum", "kern" 0; -webkit-font-feature-settings: "lnum", "tnum", "kern" 0; font-feature-settings: "lnum", "tnum", "kern" 0; font-variant-numeric: lining-nums tabular-nums; font-kerning: none; } /* Make <math display="block"> be left aligned with one space indent for compatibility with style conventions */ .mwe-math-fallback-image-display, .mwe-math-mathml-display { margin-left: 1.6em !important; margin-top: 0.6em; margin-bottom: 0.6em; } .mwe-math-mathml-display math { display: inline; } /* Fix styling of transcluded prefindex tables */ table#mw-prefixindex-list-table, table#mw-prefixindex-nav-table { width: 98%; } /* For portals, added 2011-12-07 -bv On wide screens, show these as two columns On narrow and mobile screens, let them collapse into a single column */ .portal-column-left { float: left; width: 50%; } .portal-column-right { float: right; width: 49%; } .portal-column-left-wide { float: left; width: 60%; } .portal-column-right-narrow { float: right; width: 39%; } .portal-column-left-extra-wide { float: left; width: 70%; } .portal-column-right-extra-narrow { float: right; width: 29%; } @media only screen and (max-width: 800px) { /* Decouple the columns on narrow screens */ .portal-column-left, .portal-column-right, .portal-column-left-wide, .portal-column-right-narrow, .portal-column-left-extra-wide, .portal-column-right-extra-narrow { float: inherit; width: inherit; } } /* Formerly for announcements, now used intermittently */ #bodyContent .letterhead { background-image:url('//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png'); background-repeat:no-repeat; padding: 2em; background-color: #faf9f2; } /* Tree style lists */ .treeview ul { padding: 0; margin: 0; } .treeview li { padding: 0; margin: 0; list-style-type: none; list-style-image: none; } .treeview li li { background: url("//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png") no-repeat 0 -2981px; /* @noflip */ padding-left: 20px; text-indent: 0.3em; } .treeview li li.lastline { background-position: 0 -5971px } .treeview li.emptyline > ul { /* @noflip */ margin-left: -1px; } /* first line here deals with new situation after RemexHTML switch, * where emptyline cause the first child to become the 2nd child. Such a mess */ .mw-parsermigration-right .treeview li.emptyline > ul > .mw-empty-elt:first-child + .emptyline, .treeview li.emptyline > ul > li:first-child { background-position: 0 9px } /* hidden sortkey for tablesorter */ td .sortkey, th .sortkey { display: none; speak: none; } /* Make it possible to hide checkboxes in <inputbox> */ .inputbox-hidecheckboxes form .inputbox-element, .inputbox-hidecheckboxes .mw-ui-checkbox { display: none !important; } /* Work-around for [[Phabricator:25965]] (Kaltura advertisement) */ .k-player .k-attribution { visibility: hidden; } /* Move 'play' button of video player to bottom left corner */ .PopUpMediaTransform a .play-btn-large { margin: 0; top: auto; right: auto; bottom: 0; left: 0; } /* Hide FlaggedRevs notice UI when there are no pending changes */ .flaggedrevs_draft_synced, .flaggedrevs_stable_synced { display: none; } /* Gallery styles background changes are restricted to screen view. In printing we should avoid applying backgrounds. */ @media screen { /* The backgrounds for galleries. */ #content .gallerybox div.thumb { /* Light gray padding */ background-color: #f8f9fa; } /* Put a chequered background behind images, only visible if they have transparency. '.filehistory a img' and '#file img:hover' are handled by MediaWiki core (as of 1.19) */ .gallerybox .thumb img { background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat; } /* But not on articles, user pages, portals or with opt-out. */ .ns-0 .gallerybox .thumb img, .ns-2 .gallerybox .thumb img, .ns-100 .gallerybox .thumb img, .nochecker .gallerybox .thumb img { background: #fff; } /* T178626 */ #contentSub:empty, #contentSub2:empty { display: block !important; } #contentSub:empty ~ #jump-to-nav, #contentSub2:empty ~ #jump-to-nav { margin-top: -1.4em !important; margin-bottom: 1.4em !important; } } 635a0d0c4f92e42d709b993530b5a4fedb4d9e87 Template:Infobox 10 4 23 22 2018-05-21T20:35:55Z Wizzup 4 1 revision imported wikitext text/x-wiki {{#invoke:Infobox|infobox}}<includeonly>{{#ifeq:{{NAMESPACE}}|Template|{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Category:Infobox templates|{{remove first word|{{SUBPAGENAME}}}}]]}}}}</includeonly><noinclude> {{documentation}} <!-- Categories go in the /doc subpage, and interwikis go in Wikidata. --> </noinclude> e6db96a81f994b02e93b537be937d443c0890566 Template:Clear 10 5 25 24 2018-05-21T20:35:56Z Wizzup 4 1 revision imported wikitext text/x-wiki <div style="clear:{{{1|both}}};"></div><noinclude> {{documentation}} </noinclude> 38bab3e3d7fbd3d6800d46556e60bc6bac494d72 Template:Distinguish 10 6 27 26 2018-05-21T20:35:56Z Wizzup 4 1 revision imported wikitext text/x-wiki {{#invoke:Distinguish|distinguish}}<noinclude><!-- splitting these lines causes {{Documentation}} template to terminate green shading when Distinguish is used in /doc pages. --> {{Documentation}} <!-- Add categories to the /doc subpage and interwikis to Wikidata, not here! --> </noinclude> f949a4cbfd6eb0ab77b832e69059a40a964b1fd8 Template:Documentation 10 7 29 28 2018-05-21T20:35:56Z Wizzup 4 1 revision imported wikitext text/x-wiki {{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude> <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> ce7fd93f18c46b4fa871bf679afd05cbda72d8c4 Template:Documentation subpage 10 8 31 30 2018-05-21T20:35:57Z Wizzup 4 1 revision imported wikitext text/x-wiki <includeonly><!-- -->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}} | <!--(this template has been transcluded on a /doc or /{{{override}}} page)--> </includeonly><!-- -->{{#ifeq:{{{doc-notice|show}}} |show | {{Mbox | type = notice | style = margin-bottom:1.0em; | image = [[File:Edit-copy green.svg|40px|alt=|link=]] | text = '''This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]] for {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. }} }}<!-- -->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!-- -->{{#if:{{{inhibit|}}} |<!--(don't categorize)--> | <includeonly><!-- -->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}} | [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]] | [[Category:Documentation subpages without corresponding pages]] }}<!-- --></includeonly> }}<!-- (completing initial #ifeq: at start of template:) --><includeonly> | <!--(this template has not been transcluded on a /doc or /{{{override}}} page)--> }}<!-- --></includeonly><noinclude>{{Documentation}}</noinclude> a1dda2f5e5ddf9097546af5acd7a7bad14fdac9d Template:High-risk 10 9 33 32 2018-05-21T20:35:57Z Wizzup 4 1 revision imported wikitext text/x-wiki <noinclude>{{Being deleted|2018 May 5|Template:High-risk|merge=Template:High-use}}</noinclude>{{ombox | type = content | image = [[File:Ambox warning orange.svg|40px|alt=Warning|link=]] | imageright = | text = '''This {{ #switch:{{NAMESPACE}} |Module=Lua module |#default=template }} is used on <span class="plainlinks">[https://tools.wmflabs.org/templatecount/index.php?lang=en&namespace={{NAMESPACENUMBER:{{FULLPAGENAME}}}}&name={{urlencode:{{ #switch: {{SUBPAGENAME}} | doc | sandbox = {{BASEPAGENAME}} | #default = {{PAGENAME}} }}}} {{#if:{{{1|}}}|{{formatnum:{{{1}}}}}|a very large number of}} pages]</span>.'''{{#if:{{{info|}}}|<br />{{{info}}}}}<br />To avoid large-scale disruption and unnecessary server load, any changes to it should first be tested in its [[{{ #switch: {{SUBPAGENAME}} | doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}} | #default = {{SUBJECTPAGENAME}} }}/sandbox|/sandbox]] or [[{{ #switch: {{SUBPAGENAME}} | doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}} | #default = {{SUBJECTPAGENAME}} }}/testcases|/testcases]] subpages{{ #switch:{{NAMESPACE}} |Module=. |#default=&#32;or in your own [[Wikipedia:Subpages#How to create user subpages|user subpage]]. }} The tested changes can then be added to this page in a single edit. Please consider discussing any changes {{#if:{{{2|}}}|at [[{{{2}}}]]|on the [[{{ #switch: {{SUBPAGENAME}} | doc | sandbox = {{TALKSPACE}}:{{BASEPAGENAME}} | #default = {{TALKPAGENAME}} }}|talk page]]}} before implementing them. }}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> </noinclude> bee037a75203484d1f98a52c19070a554cd22a55 Template:Infobox/doc 10 10 35 34 2018-05-21T20:35:58Z Wizzup 4 1 revision imported wikitext text/x-wiki {{distinguish|Template:Userbox}} {{Documentation subpage}} <includeonly>{{#ifeq:{{#titleparts:{{PAGENAME}}|1|2}}|old | |{{High-risk|3000000+ pages, which is ≈&thinsp;{{#expr:(300000000/{{NUMBEROFPAGES:R}}) round 0}}% of all |info=About [https://en.wikipedia.org/w/index.php?search=hastemplate%3Ainfobox&title=Special:Search&profile=default&fulltext=1&searchToken=69ttd5z1iekjo54r1z2qvq3uo 2,900,000] of the 3,000,000 pages (96%) are in mainspace; 2,900,000 of the {{NUMBEROFARTICLES}} pages in mainspace that qualify as articles transclude infoboxes ({{#expr:(290000000/{{NUMBEROFARTICLES:R}}) round 0}}%).}}{{Lua|Module:Infobox}}}}</includeonly> {{Parameter names example |name={{PAGENAME}} <!--|child |subbox |decat--> |title |above |subheader |subheader1 |subheader2={{{subheader2}}}<br/>...... |image|caption |image1|caption1 |image2|caption2={{{caption2}}}<br/>...... |header1=<div style="border-top:1px dashed #ccc;">{{{header1}}}<br/>{{nobold|( ''or'' )}}</div> |label2={{{label1}}} |data2={{{data1}}} |data3=( ''or'' ) |data4=<div style="padding-bottom:0.25em;border-bottom:1px dashed #ccc;">{{{data1}}}</div> |header5={{{header2}}}<br/><div style="padding:0.75em 0 0.5em;">{{nobold|( ''or'' )}}</div> |label6={{{label2}}} |data6={{{data2}}} |data7=( ''or'' ) |data8=<div style="padding-bottom:0.25em;border-bottom:1px dashed #ccc;">{{{data2}}}</div> |data9=<div style="padding:0.75em 0 0.5em;">( ''etc'' )</div> |below }} This template is intended as a meta template: a template used for constructing other templates. '''Note''': In general, it is not meant for use directly in an article, but can be used on a one-off basis if required. [[Help:Infobox]] contains an introduction about the recommended content and design of infoboxes; [[Wikipedia:Manual of Style/Infoboxes]] contains additional style guidelines. See [[WP:List of infoboxes]] and [[:Category:Infobox templates]] for lists of prepared topic-specific infoboxes. == Usage == Usage is similar to {{tl|navbox}}, but with an additional distinction. Each row on the table can contain either a header, or a label/data pair, or just a data cell. These are mutually exclusive states so if you define a row with both a header and a label/data pair, the label/data pair is ignored. To insert an image somewhere other than at the top of the infobox, or to insert freeform data, use a row with only a data field. == Optional control parameters == ; name : If this parameter is present, "view/discuss/edit" links will be added to the bottom of the infobox, pointing to the named page. You may use the value <nowiki>{{subst:PAGENAME}}</nowiki>; however this is rarely what you want, because it will send users clicking these links in an infobox in an article to the template code rather than the data in the infobox that they probably want to change. ; child : See the [[#Embedding|Embedding]] section for details. If this is set to "yes", this child infobox should be titled but have no name parameter. This parameter is empty by default, set it to "yes" to activate it. ; subbox : See the [[#Subboxes|Subboxes]] section for details. If this is set to "yes", this subbox should be titled but have no name parameter. This parameter is empty by default, set to "yes" to activate it. It has no effect if the '''child''' parameter is also set to "yes". ; decat : If this is set to "yes", the current page will not be autocategorized in a maintenance category when the generated infobox has some problems or no visible data section. Leave empty by default or set to "yes" to activate it. == Content parameters == === Title === There are two different ways to put a title on an infobox. One contains the title inside the infobox's border in the uppermost cell of the table, the other puts as a caption it on top of the table. You can use both of them together if you like, or just one or the other, or even neither (though this is not recommended): ; title : Text to put in the caption over the top of the table (or as section header before the whole content of this table, if this is a child infobox). For [[Wikipedia:Manual of Style/Accessibility#Tables|accessibility reasons]], this is the most recommended alternative. ; above : Text to put within the uppermost cell of the table. ; subheader(n) : additional title fields which fit below {{{title}}} and {{{above}}}, but before images. Examples: {{Infobox | name = Infobox/doc | title = Text in caption over infobox | subheader = Subheader of the infobox | header = (the rest of the infobox goes here) }} <pre style="overflow:auto"> {{Infobox | name = {{subst:PAGENAME}} | title = Text in caption over infobox | subheader = Subheader of the infobox | header = (the rest of the infobox goes here) }} </pre>{{clear}} {{Infobox | name = Infobox/doc | above = Text in uppermost cell of infobox | subheader = Subheader of the infobox | subheader2 = Second subheader of the infobox | header = (the rest of the infobox goes here) }} <pre style="overflow:auto"> {{Infobox | name = {{subst:PAGENAME}} | above = Text in uppermost cell of infobox | subheader = Subheader of the infobox | subheader2 = Second subheader of the infobox | header = (the rest of the infobox goes here) }} </pre>{{clear}} === Illustration images === ; image(n) : images to display at the top of the template. Use full image syntax, for example <nowiki>[[File:example.png|200px|alt=Example alt text]]</nowiki>. Image is centered by default. See [[WP:ALT]] for more on alt text. ; caption(n) : Text to put underneath the images. === Main data === ; header(n) : Text to use as a header in row n. ; label(n) : Text to use as a label in row n. ; data(n) : Text to display as data in row n. Note: for any given value for (n), not all combinations of parameters are permitted. The presence of a {{para|header''(n)''}} will cause the corresponding {{para|data''(n)''}} (and {{para|rowclass''(n)''}} {{para|label''(n)''}}, see below) to be ignored; the absence of a {{para|data''(n)''}} will cause the corresponding {{para|label''(n)''}} to be ignored. Valid combinations for any single row are: * {{para|class''(n)''}} {{para|header''(n)''}} * {{para|rowclass''(n)''}} {{para|class''(n)''}} {{para|data''(n)''}} * {{para|rowclass''(n)''}} {{para|label''(n)''}} {{para|class''(n)''}} {{para|data''(n)''}} See the rendering of header4, label4, and data4 in the [[#Examples|Examples]] section below. ==== Number ranges ==== To allow flexibility when the layout of an infobox is changed, it may be helpful when developing an infobox to use non-contiguous numbers for header and label/data rows. Parameters for new rows can then be inserted in future without having to renumber existing parameters. For example: <pre style="overflow:auto"> | header3 = Section 1 | label5 = Label A | data5 = Data A | label7 = Label C | data7 = Data C | header10 = Section 2 | label12 = Label D | data12 = Data D </pre>{{clear}} It is also possible to automatically renumber parameter names by using [[User:Frietjes/infoboxgap.js]] or [[Module:IncrementParams]]. ==== Making data fields optional ==== A row with a label but no data is not displayed. This allows for the easy creation of optional infobox content rows. To make a row optional use a parameter that defaults to an empty string, like so: <pre style="overflow:auto"> | label5 = Population | data5 = {{{population|}}} </pre>{{clear}} This way if an article doesn't define the population parameter in its infobox the row won't be displayed. For more complex fields with pre-formatted contents that would still be present even if the parameter wasn't set, you can wrap it all in an "#if" statement to make the whole thing vanish when the parameter is not used. For instance, the "#if" statement in the following example reads "#if:the parameter ''mass'' has been supplied |then display it, followed by 'kg'": <pre style="overflow:auto"> | label6 = Mass | data6 = {{ #if: {{{mass|}}} | {{{mass}}} kg }} </pre>{{clear}} For more on #if, see [[meta:ParserFunctions##if:|here]]. ==== Hiding headers when all data fields are hidden ==== You can also make headers optional in a similar way. Consider this example: {{Infobox | title = Example of an undesirable header | header1 = Undesirable header | label2 = Item 1 | data2 = | label3 = Item 2 | data3 = | label4 = Item 3 | data4 = | header5 = Static header | label6 = Static item | data6 = Static value }} <pre style="overflow:auto"> {{Infobox | title = Example of an undesirable header | header1 = Undesirable header | label2 = Item 1 | data2 = | label3 = Item 2 | data3 = | label4 = Item 3 | data4 = | header5 = Static header | label6 = Static item | data6 = Static value }} </pre>{{clear}} If you want the first header to appear only if one or more of the data fields that fall under it are filled, one could use the following pattern as an example of how to do it: {{Infobox | title = Example of an optional header | header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }} | label2 = Item 1 | data2 = {{{item1|}}} | label3 = Item 2 | data3 = {{{item2|}}} | label4 = Item 3 | data4 = {{{item3|}}} | header5 = Static header | label6 = Static item | data6 = Static value }} <pre style="overflow:auto"> {{Infobox | title = Example of an optional header | header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }} | label2 = Item 1 | data2 = {{{item1|}}} | label3 = Item 2 | data3 = {{{item2|}}} | label4 = Item 3 | data4 = {{{item3|}}} | header5 = Static header | label6 = Static item | data6 = Static value }} </pre>{{clear}} header1 will be shown if any of item1, item2, or item3 is defined. If none of the three parameters are defined the header won't be shown and no emty row appears before the next static content. The trick to this is that the "#if" returns false only if there is nothing whatsoever in the conditional section, so only if all three of item1, item2 and item3 are undefined will the if statement fail. Note that such trick may be sometimes very complex to test if there are many data items whose value depends on complex tests (or when a data row is generated by a recursive invokation of this template as a [[#Subboxes|subbox]]). Ideally, the Lua module supporting this template should now support a new way to make each header row autohideable by detecting if there is at least one non-empty data row after that header row (a parameter like "autohide header1 = yes", for example, would remove the need to perform the "#if" test so that we can just to define "header1 = Optional header"), === Footer === ; below : Text to put in the bottom cell. The bottom cell is intended for footnotes, see-also, and other such information. == Presentation parameters == === Italic titles === Titles of articles with infoboxes may be made italic, in line with [[WP:ITALICTITLE]], by passing the <code>italic title</code> parameter. * Turn on italic titles by passing {{para|italic title|<nowiki>{{{italic title|}}}</nowiki>}} from the infobox. * Turn off by default (notably because only Latin script may be safely rendered in this style and italic may be needed to distinguish foreign language from local English language only in that script, but would be difficult to read for other scripts) but allow some instances to be made italic by passing {{para|italic title|<nowiki>{{{italic title|no}}}</nowiki>}} * Do not make any titles italic by not passing the parameter at all. === CSS styling === ; bodystyle : Applies to the infobox table as a whole ; titlestyle : Applies only to the title caption. Adding a background color is usually inadvisable since the text is rendered "outside" the infobox. ; abovestyle : Applies only to the "above" cell at the top. The default style has font-size:125%; since this cell is usually used for a title, if you want to use the above cell for regular-sized text include "font-size:100%;" in the abovestyle. ; imagestyle : Applies to the cell the image is in. This includes the text of the image caption, but you should set text properties with captionstyle instead of imagestyle in case the caption is moved out of this cell in the future. ; captionstyle : Applies to the text of the image caption. ; rowstyle(n) : This parameter is inserted into the <code>style</code> attribute for the specified row. ; headerstyle : Applies to all header cells ; labelstyle : Applies to all label cells ; datastyle : Applies to all data cells ; belowstyle : Applies only to the below cell === HTML classes and microformats === ; bodyclass : This parameter is inserted into the <code>class</code> attribute for the infobox as a whole. ; titleclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''title''' caption. <!-- currently not implemented in Lua module ; aboverowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''above''' cell is on. --> ; aboveclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''above''' cell. ; subheaderrowclass(n) : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''subheader''' is on. ; subheaderclass(n) : This parameter is inserted into the <code>class</code> attribute for the infobox's '''subheader'''. ; imagerowclass(n) : These parameters are inserted into the <code>class</code> attribute for the complete table row their respective '''image''' is on. ; imageclass : This parameter is inserted into the <code>class</code> attribute for the '''image'''. ; rowclass(n) : This parameter is inserted into the <code>class</code> attribute for the specified row including the '''label''' and '''data''' cells. ; class(n) : This parameter is inserted into the <code>class</code> attribute for the '''data''' cell of the specified row. If there's no '''data''' cell it has no effect. <!-- currently not implemented in Lua module ; belowrowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''below''' cell is on. --> ; belowclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''below''' cell. This template supports the addition of microformat information. This is done by adding "class" attributes to various data cells, indicating what kind of information is contained within. Multiple class names may be specified, separated by spaces, some of them being used as selectors for custom styling according to a project policy or to the skin selected in user preferences, others beig used for microformats. To flag an infobox as containing [[hCard]] information, for example, add the following parameter: <pre style="overflow:auto"> | bodyclass = vcard </pre>{{clear}} And for each row containing a data cell that's part of the vcard, add a corresponding class parameter: <pre style="overflow:auto"> | class1 = fn | class2 = org | class3 = tel </pre>{{clear}} ...and so forth. "above" and "title" can also be given classes, since these are usually used to display the name of the subject of the infobox. See [[Wikipedia:WikiProject Microformats]] for more information on adding microformat information to Wikipedia, and [[microformat]] for more information on microformats in general. == Examples == Notice how the row doesn't appear in the displayed infobox when a '''label''' is defined without an accompanying '''data''' cell, and how all of them are displayed when a '''header''' is defined on the same row as a '''data''' cell. Also notice that '''subheaders''' are not bold by default like the '''headers''' used to split the main data section, because this role is meant to be for the '''above''' cell : {{Infobox |name = Infobox/doc |bodystyle = |titlestyle = |abovestyle = background:#cfc; |subheaderstyle = |title = Test Infobox |above = Above text |subheader = Subheader above image |subheader2 = Second subheader |imagestyle = |captionstyle = |image = [[File:Example-serious.jpg|200px|alt=Example alt text]] |caption = Caption displayed below File:Example-serious.jpg |headerstyle = background:#ccf; |labelstyle = background:#ddf; |datastyle = |header1 = Header defined alone | label1 = | data1 = |header2 = | label2 = Label defined alone does not display (needs data, or is suppressed) | data2 = |header3 = | label3 = | data3 = Data defined alone |header4 = All three defined (header, label, data, all with same number) | label4 = does not display (same number as a header) | data4 = does not display (same number as a header) |header5 = | label5 = Label and data defined (label) | data5 = Label and data defined (data) |belowstyle = background:#ddf; |below = Below text }} <pre style="overflow:auto"> {{Infobox |name = {{subst:PAGENAME}} |bodystyle = |titlestyle = |abovestyle = background:#cfc; |subheaderstyle = |title = Test Infobox |above = Above text |subheader = Subheader above image |subheader2 = Second subheader |imagestyle = |captionstyle = | image = [[File:Example-serious.jpg|200px|alt=Example alt text]] |caption = Caption displayed below Example-serious.jpg |headerstyle = background:#ccf; |labelstyle = background:#ddf; |datastyle = |header1 = Header defined alone | label1 = | data1 = |header2 = | label2 = Label defined alone does not display (needs data, or is suppressed) | data2 = |header3 = | label3 = | data3 = Data defined alone |header4 = All three defined (header, label, data, all with same number) | label4 = does not display (same number as a header) | data4 = does not display (same number as a header) |header5 = | label5 = Label and data defined (label) | data5 = Label and data defined (data) |belowstyle = background:#ddf; |below = Below text }} </pre>{{clear}} For this example, the '''bodystyle''' and '''labelstyle''' parameters are used to adjust the infobox width and define a default width for the column of labels: {{Infobox |name = Infobox/doc |bodystyle = width:20em |titlestyle = |title = Test Infobox |headerstyle = |labelstyle = width:33% |datastyle = |header1 = | label1 = Label 1 | data1 = Data 1 |header2 = | label2 = Label 2 | data2 = Data 2 |header3 = | label3 = Label 3 | data3 = Data 3 |header4 = Header 4 | label4 = | data4 = |header5 = | label5 = Label 5 | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |belowstyle = |below = Below text }} <pre style="overflow: auto"> {{Infobox |name = {{subst:PAGENAME}} |bodystyle = width:20em |titlestyle = |title = Test Infobox |headerstyle = |labelstyle = width:33% |datastyle = |header1 = | label1 = Label 1 | data1 = Data 1 |header2 = | label2 = Label 2 | data2 = Data 2 |header3 = | label3 = Label 3 | data3 = Data 3 |header4 = Header 4 | label4 = | data4 = |header5 = | label5 = Label 5 | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |belowstyle = |below = Below text }} </pre>{{clear}} == Embedding == <!--Linked from [[Template:Subinfobox bodystyle/doc]]--> One infobox template can be embedded into another using the {{para|child}} parameter or the {{para|embed}} parameter. This feature can be used to create a modular infobox, or to create better-defined logical sections. Long ago, it was necessary to use embedding in order to create infoboxes with more than 99 rows; but nowadays there's no limit to the number of rows that can be defined in a single instance of <code><nowiki>{{infobox}}</nowiki></code>. {{Infobox | title = Top level title | data1 = {{Infobox | decat = yes | child = yes | title = First subsection | label1= Label 1.1 | data1 = Data 1.1 }} | data2 = {{Infobox | decat = yes | child = yes |title = Second subsection | label1= Label 2.1 | data1 = Data 2.1 }} | belowstyle = | below = Below text }} <pre style="overflow:auto"> {{Infobox | title = Top level title | data1 = {{Infobox | decat = yes | child = yes | title = First subsection | label1= Label 1.1 | data1 = Data 1.1 }} | data2 = {{Infobox | decat = yes | child = yes |title = Second subsection | label1= Label 2.1 | data1 = Data 2.1 }} | belowstyle = | below = Below text }} </pre>{{clear}} Note, in the examples above, the child infobox is placed in a <code>data</code> field, not a <code>header</code> field. Notice that the section subheadings are not in bold font if bolding is not explicitly specified. To obtain bold section headings, place the child infobox in a '''header''' field (but not in a '''label''' field because it would not be displayed!), either using {{Infobox | title = Top level title | header1 = {{Infobox | decat = yes | child = yes | title = First subsection | label1= Label 1.1 | data1 = Data 1.1 }} | header2 = {{Infobox | decat = yes | child = yes | title = Second subsection | label1= Label 2.1 | data1 = Data 2.1 }} | belowstyle = | below = Below text }} <pre style="overflow:auto"> {{Infobox | title = Top level title | header1 = {{Infobox | decat = yes | child = yes | title = First subsection | label1= Label 1.1 | data1 = Data 1.1 }} | header2 = {{Infobox | decat = yes | child = yes | title = Second subsection | label1= Label 2.1 | data1 = Data 2.1 }} | belowstyle = | below = Below text }} </pre>{{clear}} or, {{Infobox | title = Top level title | header1 = First subsection {{Infobox | decat = yes | child = yes | label1 = Label 1.1 | data1 = Data 1.1 }} | header2 = Second subsection {{Infobox | decat = yes | child = yes | label1 = Label 2.1 | data1 = Data 2.1 }} | belowstyle = | below = Below text }} <pre style="overflow:auto"> {{Infobox | title = Top level title | header1 = First subsection {{Infobox | decat = yes | child = yes | label1 = Label 1.1 | data1 = Data 1.1 }} | header2 = Second subsection {{Infobox | decat = yes | child = yes | label1 = Label 2.1 | data1 = Data 2.1 }} | belowstyle = | below = Below text }} </pre>{{clear}} Note that omitting the {{para|title}} parameter, and not including any text preceding the embedded infobox, may result in spurious blank table rows, creating gaps in the visual presentation. [[Wikipedia:WikiProject Infoboxes/embed]] includes some links to Wikipedia articles which include infoboxes embedded within other infoboxes. == Subboxes == An alternative method for embedding is to use {{para|subbox|yes}}, which removes the outer border from the infobox, but preserves the interior structure. One feature of this approach is that the parent and child boxes need not have the same structure, and the label and data fields are not aligned between the parent and child boxes because they are not in the same parent table. {{Infobox | headerstyle = background-color:#eee; | labelstyle = background-color:#eee; | header1 = Main 1 | header2 = Main 2 | data3 = {{Infobox | subbox = yes | headerstyle = background-color:#ccc; | labelstyle = background-color:#ddd; | header1 = Sub 3-1 | header2 = Sub 3-2 | label3 = Label 3-3 | data3 = Data 3-3 }} | data4 = {{Infobox | subbox = yes | labelstyle = background-color:#ccc; | label1 = Label 4-1 | data1 = Data 4-1 }} | label5 = Label 5 | data5 = Data 5 | header6 = Main 6 }} <source lang="sass" style="overflow:auto"> {{Infobox | headerstyle = background-color:#eee; | labelstyle = background-color:#eee; | header1 = Main 1 | header2 = Main 2 | data3 = {{Infobox | subbox = yes | headerstyle = background-color:#ccc; | labelstyle = background-color:#ddd; | header1 = Sub 3-1 | header2 = Sub 3-2 | label3 = Label 3-3 | data3 = Data 3-3 }} | data4 = {{Infobox | subbox = yes | labelstyle = background-color:#ccc; | label1 = Label 4-1 | data1 = Data 4-1 }} | label5 = Label 5 | data5 = Data 5 | header6 = Main 6 }} </source>{{clear}} Similar embedding techniques may be used within content parameters of some other templates generating tables (such as [[:Template:Sidebar|Sidebar]]) : {{Sidebar | navbar = off | headingstyle = background-color:#eee; | heading1 = Heading 1 | heading2 = Heading 2 | content3 = {{Infobox | subbox = yes | headerstyle = background-color:#ccc; | labelstyle = background-color:#ddd; | header1 = Sub 3-1 | header2 = Sub 3-2 | label3 = Label 3-3 | data3 = Data 3-3 }} | content4 = {{Infobox | subbox = yes | labelstyle = background-color:#ccc; | label1 = Label 4-1 | data1 = Data 4-1 }} | heading5 = Heading 5 }} <source lang="sass" style="overflow:auto"> {{Sidebar | navbar = off | headingstyle = background-color:#eee; | heading1 = Heading 1 | heading2 = Heading 2 | content3 = {{Infobox | subbox = yes | headerstyle = background-color:#ccc; | labelstyle = background-color:#ddd; | header1 = Sub 3-1 | header2 = Sub 3-2 | label3 = Label 3-3 | data3 = Data 3-3 }} | content4 = {{Infobox | subbox = yes | labelstyle = background-color:#ccc; | label1 = Label 4-1 | data1 = Data 4-1 }} | heading5 = Heading 5 }} </source>{{clear}} Note that the default padding of the parent data cell containing each subbox is still visible, so the subboxes are slightly narrower than the parent box and there's a higher vertical spacing between standard cells of the parent box than between cells of distinct subboxes. == Controlling line-breaking in embedded bulletless lists == Template {{tlx|nbsp}} may be used with {{tlx|wbr}} and {{tlx|nowrap}} to control line-breaking in bulletless lists embedded in infoboxes (e.g. cast list in {{tlx|Infobox film}}), to prevent wrapped long entries from being confused with multiple entries. See [[Template:Wbr/doc#Controlling line-breaking in infoboxes]] for details. == Full blank syntax == (Note: there is no limit to the number of possible rows; only 20 are given below since infoboxes larger than that will be relatively rare. Just extend the numbering as needed. The microformat "class" parameters are also omitted as they are not commonly used.) <pre style="overflow:auto"> {{Infobox | name = {{subst:PAGENAME}} | child = {{{child|}}} | subbox = {{{subbox|}}} | italic title = {{{italic title|no}}} | bodystyle = | titlestyle = | abovestyle = | subheaderstyle = | title = | above = | subheader = | imagestyle = | captionstyle = | image = | caption = | image2 = | caption2 = | headerstyle = | labelstyle = | datastyle = | header1 = | label1 = | data1 = | header2 = | label2 = | data2 = | header3 = | label3 = | data3 = | header4 = | label4 = | data4 = | header5 = | label5 = | data5 = | header6 = | label6 = | data6 = | header7 = | label7 = | data7 = | header8 = | label8 = | data8 = | header9 = | label9 = | data9 = | header10 = | label10 = | data10 = | header11 = | label11 = | data11 = | header12 = | label12 = | data12 = | header13 = | label13 = | data13 = | header14 = | label14 = | data14 = | header15 = | label15 = | data15 = | header16 = | label16 = | data16 = | header17 = | label17 = | data17 = | header18 = | label18 = | data18 = | header19 = | label19 = | data19 = | header20 = | label20 = | data20 = | belowstyle = | below = }} </pre>{{clear}} {{Help:Infobox/user style}} == Porting to other MediaWikis == The infobox template requires the [[:mw:Extension:Scribunto|Scribunto]] extension and [[mw:Manual:Using content from Wikipedia#HTMLTidy|HTMLTidy]] to be installed. It may not work with other MediaWikis. [[Wikipedia:WikiProject Transwiki|WikiProject Transwiki]] has a version of this template that has been modified to work on other MediaWikis. ==See also== * [[Module:Infobox]], the [[WP:LUA|Lua]] module on which this template is based * [[Special:Permalink/558855956|Template:Infobox/old]], the previous ParserFunctions implementation * {{tl|Infobox3cols}} * {{tl|Navbox}} and {{tl|Sidebar}} * [[Wikipedia:List of infoboxes|List of infoboxes]] * [[:Module:InfoboxImage]] * Maintenance categories: ** [[:Category:Articles which use infobox templates with no data rows]] ** [[:Category:Pages which use embedded infobox templates with the title parameter]] <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | [[Category:Infobox templates| ]] [[Category:Wikipedia metatemplates|Infobox]] [[Category:Templates generating microformats]] }}</includeonly> 55041172c405c4af692b5014121cea8cd1547b58 Template:Lua 10 11 37 36 2018-05-21T20:35:58Z Wizzup 4 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude> {{Lua|Module:Lua banner}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> dba3962144dacd289dbc34f50fbe0a7bf6d7f2f7 Template:Nobold 10 12 39 38 2018-05-21T20:35:58Z Wizzup 4 1 revision imported wikitext text/x-wiki <span style="font-weight:normal;">{{{1}}}</span><noinclude> {{documentation}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --> </noinclude> a5bfaf2d8a3e54e084e1c261e8f9929dc7d83553 Template:Ombox 10 13 41 40 2018-05-21T20:35:59Z Wizzup 4 1 revision imported wikitext text/x-wiki {{#invoke:Message box|ombox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> 0e54065432d540737b9e56c4e3a8e7f74d4534ea Template:Para 10 14 43 42 2018-05-21T20:35:59Z Wizzup 4 1 revision imported wikitext text/x-wiki <code class="nowrap" {{#if:{{{plain|}}}|style="border:none;background-color:inherit;color:inherit;"}}>&#124;{{#if:{{{1|}}}|{{{1}}}&#61;}}{{{2|}}}</code><noinclude> {{Documentation}} <!--Categories and interwikis go near the bottom of the /doc subpage.--> </noinclude> 66770157bb51b0aabb5b874e4f1bb8f04c80915c Template:Parameter names example 10 15 45 44 2018-05-21T20:35:59Z Wizzup 4 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Parameter names example|main}}</includeonly><noinclude> {{hatnote|[[Template:Generic template demo]] and [[Template:Pnex]] redirect here.}}<!--(hatnote more noticeable here than within Documentation)--> {{Documentation}} </noinclude> 6b63b13c0cf74f1f8d250aa644a6bd27e19052f6 Template:Remove first word 10 16 47 46 2018-05-21T20:36:00Z Wizzup 4 1 revision imported wikitext text/x-wiki {{<includeonly>safesubst:</includeonly>#invoke:String|replace|source={{{1}}}|pattern=^[^{{{sep|%s}}}]*{{{sep|%s}}}*|replace=|plain=false}}<noinclude>{{Documentation}}</noinclude> df7a9e692f68be1581be06af5f51eaed5483b4c8 Template:Sidebar 10 17 49 48 2018-05-21T20:36:00Z Wizzup 4 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Sidebar|sidebar}}</includeonly><noinclude>{{documentation}}</noinclude> 199b678d734b35e4002d02267999c5c41fafadcf Template:Str left 10 18 51 50 2018-05-21T20:36:00Z Wizzup 4 1 revision imported wikitext text/x-wiki <includeonly>{{safesubst:padleft:|{{{2|1}}}|{{{1}}}}}</includeonly><noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> 2048b0d7b35e156528655b1d090e8b5ffab3f400 Template:Tl 10 19 53 52 2018-05-21T20:36:00Z Wizzup 4 1 revision imported wikitext text/x-wiki &#123;&#123;[[Template:{{{1}}}|{{{1}}}]]&#125;&#125;<noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> 91be693cd63410db06fc933eddb412ba433564dc Template:Tlx 10 20 55 54 2018-05-21T20:36:01Z Wizzup 4 1 revision imported wikitext text/x-wiki <includeonly><!-- --><code><!-- --><nowiki>{{</nowiki>{{#if:{{{subst|}}} |[[Help:Substitution|subst]]:}}<!-- -->[[{{{LANG|}}}{{{SISTER|}}}{{ns:Template}}:{{{1|}}}|{{{1|}}}]]<!-- -->{{#if:{{{2|}}} |&#124;{{{2}}}}}<!-- -->{{#if:{{{3|}}} |&#124;{{{3}}}}}<!-- -->{{#if:{{{4|}}} |&#124;{{{4}}}}}<!-- -->{{#if:{{{5|}}} |&#124;{{{5}}}}}<!-- -->{{#if:{{{6|}}} |&#124;{{{6}}}}}<!-- -->{{#if:{{{7|}}} |&#124;{{{7}}}}}<!-- -->{{#if:{{{8|}}} |&#124;{{{8}}}}}<!-- -->{{#if:{{{9|}}} |&#124;{{{9}}}}}<!-- -->{{#if:{{{10|}}} |&#124;{{{10}}}}}<!-- -->{{#if:{{{11|}}} |&#124;{{{11}}}}}<!-- -->{{#if:{{{12|}}} |&#124;''...''}}<!-- --><nowiki>}}</nowiki><!-- --></code><!-- --></includeonly><noinclude> {{Documentation}}</noinclude> 0351b5b369b3924647b962552caf55410c3c3007 Help:Infobox/user style 12 21 57 56 2018-05-21T20:36:01Z Wizzup 4 1 revision imported wikitext text/x-wiki {{{heading| ==Infoboxes and user style == }}} Users can have [[WP:User style|user CSS]] that hides<!--, moves, or makes collapsible--> any infoboxes in their own browsers. To hide all infoboxes, add the following to [[Special:MyPage/common.css]] (for all [[WP:Skin|skins]], or [[Special:MyPage/skin.css]] for just the current skin), on a line by itself: <source lang="css">.infobox { display: none; }</source> Alternatively, you can add the following code to [[Special:MyPage/common.js|your common.js]] or into a browser user script that is executed by an extension like [[Greasemonkey]]: <source lang="js">$('.infobox').hide();</source> Be aware that although, per [[WP:Manual of Style/Infoboxes]], all information in an infobox ideally should also be found in the main body of an article, there isn't perfect compliance with this guideline. For example, the full taxonomic hierarchy in {{tl|Taxobox}}, and the OMIM and other medical database codes of {{tl|Infobox disease}} are often not found in the main article content. The infobox is also often the location of the most significant, even only, image in an article.<!-- Needs Special:Mypage/common.js options for: * Making infoboxes collapsible ** Making them auto-collapsed * Moving infoboxes to bottom of page --><noinclude> {{Documentation|content= This documentation snippet is transcluded at [[Help:Infobox]], [[Template:Infobox/doc]], [[WP:Customisation#Hiding specific messages]], [[Help:User style]], [[WP:Manual of Style/Infoboxes]], and other places where this information is relevant. As a template, this snippet takes a {{para|heading}} parameter to replace the level-2 <code>==Infoboxes and user style==</code> section heading code, as needed. E.g, for a <code>=== ... ===</code> level-3 heading: <code><nowiki>heading={{=}}{{=}}{{=}}Infoboxes and user style{{=}}{{=}}{{=}}</nowiki></code> }} </noinclude> a6d5906a521350394da9a9792a94e98bc136b88f Module:Arguments 828 22 59 58 2018-05-21T20:36:02Z Wizzup 4 1 revision imported Scribunto text/plain -- This module provides easy processing of arguments passed to Scribunto from -- #invoke. It is intended for use by other Lua modules, and should not be -- called from #invoke directly. local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local arguments = {} -- Generate four different tidyVal functions, so that we don't have to check the -- options every time we call it. local function tidyValDefault(key, val) if type(val) == 'string' then val = val:match('^%s*(.-)%s*$') if val == '' then return nil else return val end else return val end end local function tidyValTrimOnly(key, val) if type(val) == 'string' then return val:match('^%s*(.-)%s*$') else return val end end local function tidyValRemoveBlanksOnly(key, val) if type(val) == 'string' then if val:find('%S') then return val else return nil end else return val end end local function tidyValNoChange(key, val) return val end local function matchesTitle(given, title) local tp = type( given ) return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title end local translate_mt = { __index = function(t, k) return k end } function arguments.getArgs(frame, options) checkType('getArgs', 1, frame, 'table', true) checkType('getArgs', 2, options, 'table', true) frame = frame or {} options = options or {} --[[ -- Set up argument translation. --]] options.translate = options.translate or {} if getmetatable(options.translate) == nil then setmetatable(options.translate, translate_mt) end if options.backtranslate == nil then options.backtranslate = {} for k,v in pairs(options.translate) do options.backtranslate[v] = k end end if options.backtranslate and getmetatable(options.backtranslate) == nil then setmetatable(options.backtranslate, { __index = function(t, k) if options.translate[k] ~= k then return nil else return k end end }) end --[[ -- Get the argument tables. If we were passed a valid frame object, get the -- frame arguments (fargs) and the parent frame arguments (pargs), depending -- on the options set and on the parent frame's availability. If we weren't -- passed a valid frame object, we are being called from another Lua module -- or from the debug console, so assume that we were passed a table of args -- directly, and assign it to a new variable (luaArgs). --]] local fargs, pargs, luaArgs if type(frame.args) == 'table' and type(frame.getParent) == 'function' then if options.wrappers then --[[ -- The wrappers option makes Module:Arguments look up arguments in -- either the frame argument table or the parent argument table, but -- not both. This means that users can use either the #invoke syntax -- or a wrapper template without the loss of performance associated -- with looking arguments up in both the frame and the parent frame. -- Module:Arguments will look up arguments in the parent frame -- if it finds the parent frame's title in options.wrapper; -- otherwise it will look up arguments in the frame object passed -- to getArgs. --]] local parent = frame:getParent() if not parent then fargs = frame.args else local title = parent:getTitle():gsub('/sandbox$', '') local found = false if matchesTitle(options.wrappers, title) then found = true elseif type(options.wrappers) == 'table' then for _,v in pairs(options.wrappers) do if matchesTitle(v, title) then found = true break end end end -- We test for false specifically here so that nil (the default) acts like true. if found or options.frameOnly == false then pargs = parent.args end if not found or options.parentOnly == false then fargs = frame.args end end else -- options.wrapper isn't set, so check the other options. if not options.parentOnly then fargs = frame.args end if not options.frameOnly then local parent = frame:getParent() pargs = parent and parent.args or nil end end if options.parentFirst then fargs, pargs = pargs, fargs end else luaArgs = frame end -- Set the order of precedence of the argument tables. If the variables are -- nil, nothing will be added to the table, which is how we avoid clashes -- between the frame/parent args and the Lua args. local argTables = {fargs} argTables[#argTables + 1] = pargs argTables[#argTables + 1] = luaArgs --[[ -- Generate the tidyVal function. If it has been specified by the user, we -- use that; if not, we choose one of four functions depending on the -- options chosen. This is so that we don't have to call the options table -- every time the function is called. --]] local tidyVal = options.valueFunc if tidyVal then if type(tidyVal) ~= 'function' then error( "bad value assigned to option 'valueFunc'" .. '(function expected, got ' .. type(tidyVal) .. ')', 2 ) end elseif options.trim ~= false then if options.removeBlanks ~= false then tidyVal = tidyValDefault else tidyVal = tidyValTrimOnly end else if options.removeBlanks ~= false then tidyVal = tidyValRemoveBlanksOnly else tidyVal = tidyValNoChange end end --[[ -- Set up the args, metaArgs and nilArgs tables. args will be the one -- accessed from functions, and metaArgs will hold the actual arguments. Nil -- arguments are memoized in nilArgs, and the metatable connects all of them -- together. --]] local args, metaArgs, nilArgs, metatable = {}, {}, {}, {} setmetatable(args, metatable) local function mergeArgs(tables) --[[ -- Accepts multiple tables as input and merges their keys and values -- into one table. If a value is already present it is not overwritten; -- tables listed earlier have precedence. We are also memoizing nil -- values, which can be overwritten if they are 's' (soft). --]] for _, t in ipairs(tables) do for key, val in pairs(t) do if metaArgs[key] == nil and nilArgs[key] ~= 'h' then local tidiedVal = tidyVal(key, val) if tidiedVal == nil then nilArgs[key] = 's' else metaArgs[key] = tidiedVal end end end end end --[[ -- Define metatable behaviour. Arguments are memoized in the metaArgs table, -- and are only fetched from the argument tables once. Fetching arguments -- from the argument tables is the most resource-intensive step in this -- module, so we try and avoid it where possible. For this reason, nil -- arguments are also memoized, in the nilArgs table. Also, we keep a record -- in the metatable of when pairs and ipairs have been called, so we do not -- run pairs and ipairs on the argument tables more than once. We also do -- not run ipairs on fargs and pargs if pairs has already been run, as all -- the arguments will already have been copied over. --]] metatable.__index = function (t, key) --[[ -- Fetches an argument when the args table is indexed. First we check -- to see if the value is memoized, and if not we try and fetch it from -- the argument tables. When we check memoization, we need to check -- metaArgs before nilArgs, as both can be non-nil at the same time. -- If the argument is not present in metaArgs, we also check whether -- pairs has been run yet. If pairs has already been run, we return nil. -- This is because all the arguments will have already been copied into -- metaArgs by the mergeArgs function, meaning that any other arguments -- must be nil. --]] if type(key) == 'string' then key = options.translate[key] end local val = metaArgs[key] if val ~= nil then return val elseif metatable.donePairs or nilArgs[key] then return nil end for _, argTable in ipairs(argTables) do local argTableVal = tidyVal(key, argTable[key]) if argTableVal ~= nil then metaArgs[key] = argTableVal return argTableVal end end nilArgs[key] = 'h' return nil end metatable.__newindex = function (t, key, val) -- This function is called when a module tries to add a new value to the -- args table, or tries to change an existing value. if type(key) == 'string' then key = options.translate[key] end if options.readOnly then error( 'could not write to argument table key "' .. tostring(key) .. '"; the table is read-only', 2 ) elseif options.noOverwrite and args[key] ~= nil then error( 'could not write to argument table key "' .. tostring(key) .. '"; overwriting existing arguments is not permitted', 2 ) elseif val == nil then --[[ -- If the argument is to be overwritten with nil, we need to erase -- the value in metaArgs, so that __index, __pairs and __ipairs do -- not use a previous existing value, if present; and we also need -- to memoize the nil in nilArgs, so that the value isn't looked -- up in the argument tables if it is accessed again. --]] metaArgs[key] = nil nilArgs[key] = 'h' else metaArgs[key] = val end end local function translatenext(invariant) local k, v = next(invariant.t, invariant.k) invariant.k = k if k == nil then return nil elseif type(k) ~= 'string' or not options.backtranslate then return k, v else local backtranslate = options.backtranslate[k] if backtranslate == nil then -- Skip this one. This is a tail call, so this won't cause stack overflow return translatenext(invariant) else return backtranslate, v end end end metatable.__pairs = function () -- Called when pairs is run on the args table. if not metatable.donePairs then mergeArgs(argTables) metatable.donePairs = true end return translatenext, { t = metaArgs } end local function inext(t, i) -- This uses our __index metamethod local v = t[i + 1] if v ~= nil then return i + 1, v end end metatable.__ipairs = function (t) -- Called when ipairs is run on the args table. return inext, t, 0 end return args end return arguments 3134ecce8429b810d445e29eae115e2ae4c36c53 Module:Distinguish 828 23 61 60 2018-05-21T20:36:02Z Wizzup 4 1 revision imported Scribunto text/plain local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mArguments --initialize lazily local mTableTools --initialize lazily local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local p = {} function p.distinguish(frame) mArguments = require('Module:Arguments') mTableTools = require('Module:TableTools') local args = mArguments.getArgs(frame) local selfref = args.selfref local text = args.text args = mTableTools.compressSparseArray(args) return p._distinguish(args, text, selfref) end function p._distinguish(args, text, selfref) checkType("_distinguish", 1, args, 'table') if #args == 0 and not text then return '' end local text = string.format( 'Not to be confused with %s.', text or mHatlist.orList(args, true) ) hnOptions = {selfref = selfref} return mHatnote._hatnote(text, hnOptions) end return p 0364d14af01fc656ad1d898c5036fbd12a7ca938 Module:Documentation 828 24 63 62 2018-05-21T20:36:02Z Wizzup 4 1 revision imported Scribunto text/plain -- This module implements {{documentation}}. -- Get required modules. local getArgs = require('Module:Arguments').getArgs local messageBox = require('Module:Message box') -- Get the config table. local cfg = mw.loadData('Module:Documentation/config') local p = {} -- Often-used functions. local ugsub = mw.ustring.gsub ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made available in the p -- table for testing purposes. ---------------------------------------------------------------------------- local function message(cfgKey, valArray, expectType) --[[ -- Gets a message from the cfg table and formats it if appropriate. -- The function raises an error if the value from the cfg table is not -- of the type expectType. The default type for expectType is 'string'. -- If the table valArray is present, strings such as $1, $2 etc. in the -- message are substituted with values from the table keys [1], [2] etc. -- For example, if the message "foo-message" had the value 'Foo $2 bar $1.', -- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." --]] local msg = cfg[cfgKey] expectType = expectType or 'string' if type(msg) ~= expectType then error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2) end if not valArray then return msg end local function getMessageVal(match) match = tonumber(match) return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4) end local ret = ugsub(msg, '$([1-9][0-9]*)', getMessageVal) return ret end p.message = message local function makeWikilink(page, display) if display then return mw.ustring.format('[[%s|%s]]', page, display) else return mw.ustring.format('[[%s]]', page) end end p.makeWikilink = makeWikilink local function makeCategoryLink(cat, sort) local catns = mw.site.namespaces[14].name return makeWikilink(catns .. ':' .. cat, sort) end p.makeCategoryLink = makeCategoryLink local function makeUrlLink(url, display) return mw.ustring.format('[%s %s]', url, display) end p.makeUrlLink = makeUrlLink local function makeToolbar(...) local ret = {} local lim = select('#', ...) if lim < 1 then return nil end for i = 1, lim do ret[#ret + 1] = select(i, ...) end return '<small style="font-style: normal;">(' .. table.concat(ret, ' &#124; ') .. ')</small>' end p.makeToolbar = makeToolbar ---------------------------------------------------------------------------- -- Argument processing ---------------------------------------------------------------------------- local function makeInvokeFunc(funcName) return function (frame) local args = getArgs(frame, { valueFunc = function (key, value) if type(value) == 'string' then value = value:match('^%s*(.-)%s*$') -- Remove whitespace. if key == 'heading' or value ~= '' then return value else return nil end else return value end end }) return p[funcName](args) end end ---------------------------------------------------------------------------- -- Main function ---------------------------------------------------------------------------- p.main = makeInvokeFunc('_main') function p._main(args) --[[ -- This function defines logic flow for the module. -- @args - table of arguments passed by the user -- -- Messages: -- 'main-div-id' --> 'template-documentation' -- 'main-div-classes' --> 'template-documentation iezoomfix' --]] local env = p.getEnvironment(args) local root = mw.html.create() root :wikitext(p.protectionTemplate(env)) :wikitext(p.sandboxNotice(args, env)) -- This div tag is from {{documentation/start box}}, but moving it here -- so that we don't have to worry about unclosed tags. :tag('div') :attr('id', message('main-div-id')) :addClass(message('main-div-classes')) :newline() :wikitext(p._startBox(args, env)) :wikitext(p._content(args, env)) :tag('div') :css('clear', 'both') -- So right or left floating items don't stick out of the doc box. :newline() :done() :done() :wikitext(p._endBox(args, env)) :wikitext(p.addTrackingCategories(env)) return tostring(root) end ---------------------------------------------------------------------------- -- Environment settings ---------------------------------------------------------------------------- function p.getEnvironment(args) --[[ -- Returns a table with information about the environment, including title objects and other namespace- or -- path-related data. -- @args - table of arguments passed by the user -- -- Title objects include: -- env.title - the page we are making documentation for (usually the current title) -- env.templateTitle - the template (or module, file, etc.) -- env.docTitle - the /doc subpage. -- env.sandboxTitle - the /sandbox subpage. -- env.testcasesTitle - the /testcases subpage. -- env.printTitle - the print version of the template, located at the /Print subpage. -- -- Data includes: -- env.protectionLevels - the protection levels table of the title object. -- env.subjectSpace - the number of the title's subject namespace. -- env.docSpace - the number of the namespace the title puts its documentation in. -- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace. -- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template. -- -- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value -- returned will be nil. --]] local env, envFuncs = {}, {} -- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value -- returned by that function is memoized in the env table so that we don't call any of the functions -- more than once. (Nils won't be memoized.) setmetatable(env, { __index = function (t, key) local envFunc = envFuncs[key] if envFunc then local success, val = pcall(envFunc) if success then env[key] = val -- Memoise the value. return val end end return nil end }) function envFuncs.title() -- The title object for the current page, or a test page passed with args.page. local title local titleArg = args.page if titleArg then title = mw.title.new(titleArg) else title = mw.title.getCurrentTitle() end return title end function envFuncs.templateTitle() --[[ -- The template (or module, etc.) title object. -- Messages: -- 'sandbox-subpage' --> 'sandbox' -- 'testcases-subpage' --> 'testcases' --]] local subjectSpace = env.subjectSpace local title = env.title local subpage = title.subpageText if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then return mw.title.makeTitle(subjectSpace, title.baseText) else return mw.title.makeTitle(subjectSpace, title.text) end end function envFuncs.docTitle() --[[ -- Title object of the /doc subpage. -- Messages: -- 'doc-subpage' --> 'doc' --]] local title = env.title local docname = args[1] -- User-specified doc page. local docpage if docname then docpage = docname else docpage = env.docpageBase .. '/' .. message('doc-subpage') end return mw.title.new(docpage) end function envFuncs.sandboxTitle() --[[ -- Title object for the /sandbox subpage. -- Messages: -- 'sandbox-subpage' --> 'sandbox' --]] return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage')) end function envFuncs.testcasesTitle() --[[ -- Title object for the /testcases subpage. -- Messages: -- 'testcases-subpage' --> 'testcases' --]] return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) end function envFuncs.printTitle() --[[ -- Title object for the /Print subpage. -- Messages: -- 'print-subpage' --> 'Print' --]] return env.templateTitle:subPageTitle(message('print-subpage')) end function envFuncs.protectionLevels() -- The protection levels table of the title object. return env.title.protectionLevels end function envFuncs.subjectSpace() -- The subject namespace number. return mw.site.namespaces[env.title.namespace].subject.id end function envFuncs.docSpace() -- The documentation namespace number. For most namespaces this is the same as the -- subject namespace. However, pages in the Article, File, MediaWiki or Category -- namespaces must have their /doc, /sandbox and /testcases pages in talk space. local subjectSpace = env.subjectSpace if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then return subjectSpace + 1 else return subjectSpace end end function envFuncs.docpageBase() -- The base page of the /doc, /sandbox, and /testcases subpages. -- For some namespaces this is the talk page, rather than the template page. local templateTitle = env.templateTitle local docSpace = env.docSpace local docSpaceText = mw.site.namespaces[docSpace].name -- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon. return docSpaceText .. ':' .. templateTitle.text end function envFuncs.compareUrl() -- Diff link between the sandbox and the main template using [[Special:ComparePages]]. local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle if templateTitle.exists and sandboxTitle.exists then local compareUrl = mw.uri.fullUrl( 'Special:ComparePages', {page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} ) return tostring(compareUrl) else return nil end end return env end ---------------------------------------------------------------------------- -- Auxiliary templates ---------------------------------------------------------------------------- function p.sandboxNotice(args, env) --[=[ -- Generates a sandbox notice for display above sandbox pages. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]' -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' -- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page' -- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page' -- 'sandbox-notice-pagetype-other' --> 'sandbox page' -- 'sandbox-notice-compare-link-display' --> 'diff' -- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.' -- 'sandbox-notice-testcases-link-display' --> 'test cases' -- 'sandbox-category' --> 'Template sandboxes' --]=] local title = env.title local sandboxTitle = env.sandboxTitle local templateTitle = env.templateTitle local subjectSpace = env.subjectSpace if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then return nil end -- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text". local omargs = {} omargs.image = message('sandbox-notice-image') -- Get the text. We start with the opening blurb, which is something like -- "This is the template sandbox for [[Template:Foo]] (diff)." local text = '' local pagetype if subjectSpace == 10 then pagetype = message('sandbox-notice-pagetype-template') elseif subjectSpace == 828 then pagetype = message('sandbox-notice-pagetype-module') else pagetype = message('sandbox-notice-pagetype-other') end local templateLink = makeWikilink(templateTitle.prefixedText) local compareUrl = env.compareUrl if compareUrl then local compareDisplay = message('sandbox-notice-compare-link-display') local compareLink = makeUrlLink(compareUrl, compareDisplay) text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink}) else text = text .. message('sandbox-notice-blurb', {pagetype, templateLink}) end -- Get the test cases page blurb if the page exists. This is something like -- "See also the companion subpage for [[Template:Foo/testcases|test cases]]." local testcasesTitle = env.testcasesTitle if testcasesTitle and testcasesTitle.exists then if testcasesTitle.namespace == mw.site.namespaces.Module.id then local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink}) else local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink}) end end -- Add the sandbox to the sandbox category. text = text .. makeCategoryLink(message('sandbox-category')) omargs.text = text local ret = '<div style="clear: both;"></div>' ret = ret .. messageBox.main('ombox', omargs) return ret end function p.protectionTemplate(env) -- Generates the padlock icon in the top right. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'protection-template' --> 'pp-template' -- 'protection-template-args' --> {docusage = 'yes'} local protectionLevels, mProtectionBanner local title = env.title protectionLevels = env.protectionLevels if not protectionLevels then return nil end local editProt = protectionLevels.edit and protectionLevels.edit[1] local moveProt = protectionLevels.move and protectionLevels.move[1] if editProt then -- The page is edit-protected. mProtectionBanner = require('Module:Protection banner') local reason = message('protection-reason-edit') return mProtectionBanner._main{reason, small = true} elseif moveProt and moveProt ~= 'autoconfirmed' then -- The page is move-protected but not edit-protected. Exclude move -- protection with the level "autoconfirmed", as this is equivalent to -- no move protection at all. mProtectionBanner = require('Module:Protection banner') return mProtectionBanner._main{action = 'move', small = true} else return nil end end ---------------------------------------------------------------------------- -- Start box ---------------------------------------------------------------------------- p.startBox = makeInvokeFunc('_startBox') function p._startBox(args, env) --[[ -- This function generates the start box. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make -- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox -- which generate the box HTML. --]] env = env or p.getEnvironment(args) local links local content = args.content if not content then -- No need to include the links if the documentation is on the template page itself. local linksData = p.makeStartBoxLinksData(args, env) if linksData then links = p.renderStartBoxLinks(linksData) end end -- Generate the start box html. local data = p.makeStartBoxData(args, env, links) if data then return p.renderStartBox(data) else -- User specified no heading. return nil end end function p.makeStartBoxLinksData(args, env) --[[ -- Does initial processing of data to make the [view] [edit] [history] [purge] links. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'view-link-display' --> 'view' -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'purge-link-display' --> 'purge' -- 'file-docpage-preload' --> 'Template:Documentation/preload-filespace' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'docpage-preload' --> 'Template:Documentation/preload' -- 'create-link-display' --> 'create' --]] local subjectSpace = env.subjectSpace local title = env.title local docTitle = env.docTitle if not title or not docTitle then return nil end local data = {} data.title = title data.docTitle = docTitle -- View, display, edit, and purge links if /doc exists. data.viewLinkDisplay = message('view-link-display') data.editLinkDisplay = message('edit-link-display') data.historyLinkDisplay = message('history-link-display') data.purgeLinkDisplay = message('purge-link-display') -- Create link if /doc doesn't exist. local preload = args.preload if not preload then if subjectSpace == 6 then -- File namespace preload = message('file-docpage-preload') elseif subjectSpace == 828 then -- Module namespace preload = message('module-preload') else preload = message('docpage-preload') end end data.preload = preload data.createLinkDisplay = message('create-link-display') return data end function p.renderStartBoxLinks(data) --[[ -- Generates the [view][edit][history][purge] or [create] links from the data table. -- @data - a table of data generated by p.makeStartBoxLinksData --]] local function escapeBrackets(s) -- Escapes square brackets with HTML entities. s = s:gsub('%[', '&#91;') -- Replace square brackets with HTML entities. s = s:gsub('%]', '&#93;') return s end local ret local docTitle = data.docTitle local title = data.title if docTitle.exists then local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay) local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay) local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay) ret = '[%s] [%s] [%s] [%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink) else local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) ret = '[%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, createLink) end return ret end function p.makeStartBoxData(args, env, links) --[=[ -- Does initial processing of data to pass to the start-box render function, p.renderStartBox. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error. -- -- Messages: -- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- 'template-namespace-heading' --> 'Template documentation' -- 'module-namespace-heading' --> 'Module documentation' -- 'file-namespace-heading' --> 'Summary' -- 'other-namespaces-heading' --> 'Documentation' -- 'start-box-linkclasses' --> 'mw-editsection-like plainlinks' -- 'start-box-link-id' --> 'doc_editlinks' -- 'testcases-create-link-display' --> 'create' --]=] local subjectSpace = env.subjectSpace if not subjectSpace then -- Default to an "other namespaces" namespace, so that we get at least some output -- if an error occurs. subjectSpace = 2 end local data = {} -- Heading local heading = args.heading -- Blank values are not removed. if heading == '' then -- Don't display the start box if the heading arg is defined but blank. return nil end if heading then data.heading = heading elseif subjectSpace == 10 then -- Template namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading') elseif subjectSpace == 828 then -- Module namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading') elseif subjectSpace == 6 then -- File namespace data.heading = message('file-namespace-heading') else data.heading = message('other-namespaces-heading') end -- Heading CSS local headingStyle = args['heading-style'] if headingStyle then data.headingStyleText = headingStyle elseif subjectSpace == 10 then -- We are in the template or template talk namespaces. data.headingFontWeight = 'bold' data.headingFontSize = '125%' else data.headingFontSize = '150%' end -- Data for the [view][edit][history][purge] or [create] links. if links then data.linksClass = message('start-box-linkclasses') data.linksId = message('start-box-link-id') data.links = links end return data end function p.renderStartBox(data) -- Renders the start box html. -- @data - a table of data generated by p.makeStartBoxData. local sbox = mw.html.create('div') sbox :css('padding-bottom', '3px') :css('border-bottom', '1px solid #aaa') :css('margin-bottom', '1ex') :newline() :tag('span') :cssText(data.headingStyleText) :css('font-weight', data.headingFontWeight) :css('font-size', data.headingFontSize) :wikitext(data.heading) local links = data.links if links then sbox:tag('span') :addClass(data.linksClass) :attr('id', data.linksId) :wikitext(links) end return tostring(sbox) end ---------------------------------------------------------------------------- -- Documentation content ---------------------------------------------------------------------------- p.content = makeInvokeFunc('_content') function p._content(args, env) -- Displays the documentation contents -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment env = env or p.getEnvironment(args) local docTitle = env.docTitle local content = args.content if not content and docTitle and docTitle.exists then content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText} end -- The line breaks below are necessary so that "=== Headings ===" at the start and end -- of docs are interpreted correctly. return '\n' .. (content or '') .. '\n' end p.contentTitle = makeInvokeFunc('_contentTitle') function p._contentTitle(args, env) env = env or p.getEnvironment(args) local docTitle = env.docTitle if not args.content and docTitle and docTitle.exists then return docTitle.prefixedText else return '' end end ---------------------------------------------------------------------------- -- End box ---------------------------------------------------------------------------- p.endBox = makeInvokeFunc('_endBox') function p._endBox(args, env) --[=[ -- This function generates the end box (also known as the link box). -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'fmbox-id' --> 'documentation-meta-data' -- 'fmbox-style' --> 'background-color: #ecfcf4' -- 'fmbox-textstyle' --> 'font-style: italic' -- -- The HTML is generated by the {{fmbox}} template, courtesy of [[Module:Message box]]. --]=] -- Get environment data. env = env or p.getEnvironment(args) local subjectSpace = env.subjectSpace local docTitle = env.docTitle if not subjectSpace or not docTitle then return nil end -- Check whether we should output the end box at all. Add the end -- box by default if the documentation exists or if we are in the -- user, module or template namespaces. local linkBox = args['link box'] if linkBox == 'off' or not ( docTitle.exists or subjectSpace == 2 or subjectSpace == 828 or subjectSpace == 10 ) then return nil end -- Assemble the arguments for {{fmbox}}. local fmargs = {} fmargs.id = message('fmbox-id') -- Sets 'documentation-meta-data' fmargs.image = 'none' fmargs.style = message('fmbox-style') -- Sets 'background-color: #ecfcf4' fmargs.textstyle = message('fmbox-textstyle') -- 'font-style: italic;' -- Assemble the fmbox text field. local text = '' if linkBox then text = text .. linkBox else text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]." if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then -- We are in the user, template or module namespaces. -- Add sandbox and testcases links. -- "Editors can experiment in this template's sandbox and testcases pages." text = text .. (p.makeExperimentBlurb(args, env) or '') text = text .. '<br />' if not args.content and not args[1] then -- "Please add categories to the /doc subpage." -- Don't show this message with inline docs or with an explicitly specified doc page, -- as then it is unclear where to add the categories. text = text .. (p.makeCategoriesBlurb(args, env) or '') end text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates. if printBlurb then text = text .. '<br />' .. printBlurb end end end fmargs.text = text return messageBox.main('fmbox', fmargs) end function p.makeDocPageBlurb(args, env) --[=[ -- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)". -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'transcluded-from-blurb' --> -- 'The above [[Wikipedia:Template documentation|documentation]] -- is [[Wikipedia:Transclusion|transcluded]] from $1.' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'create-link-display' --> 'create' -- 'create-module-doc-blurb' --> -- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' --]=] local docTitle = env.docTitle if not docTitle then return nil end local ret if docTitle.exists then -- /doc exists; link to it. local docLink = makeWikilink(docTitle.prefixedText) local editUrl = docTitle:fullUrl{action = 'edit'} local editDisplay = message('edit-link-display') local editLink = makeUrlLink(editUrl, editDisplay) local historyUrl = docTitle:fullUrl{action = 'history'} local historyDisplay = message('history-link-display') local historyLink = makeUrlLink(historyUrl, historyDisplay) ret = message('transcluded-from-blurb', {docLink}) .. ' ' .. makeToolbar(editLink, historyLink) .. '<br />' elseif env.subjectSpace == 828 then -- /doc does not exist; ask to create it. local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} local createDisplay = message('create-link-display') local createLink = makeUrlLink(createUrl, createDisplay) ret = message('create-module-doc-blurb', {createLink}) .. '<br />' end return ret end function p.makeExperimentBlurb(args, env) --[[ -- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-link-display' --> 'sandbox' -- 'sandbox-edit-link-display' --> 'edit' -- 'compare-link-display' --> 'diff' -- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'sandbox-create-link-display' --> 'create' -- 'mirror-edit-summary' --> 'Create sandbox version of $1' -- 'mirror-link-display' --> 'mirror' -- 'mirror-link-preload' --> 'Template:Documentation/mirror' -- 'sandbox-link-display' --> 'sandbox' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display'--> 'edit' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'testcases-create-link-display' --> 'create' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display' --> 'edit' -- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases' -- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases' -- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.' -- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle local testcasesTitle = env.testcasesTitle local templatePage = templateTitle.prefixedText if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then return nil end -- Make links. local sandboxLinks, testcasesLinks if sandboxTitle.exists then local sandboxPage = sandboxTitle.prefixedText local sandboxDisplay = message('sandbox-link-display') local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'} local sandboxEditDisplay = message('sandbox-edit-link-display') local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay) local compareUrl = env.compareUrl local compareLink if compareUrl then local compareDisplay = message('compare-link-display') compareLink = makeUrlLink(compareUrl, compareDisplay) end sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink) else local sandboxPreload if subjectSpace == 828 then sandboxPreload = message('module-sandbox-preload') else sandboxPreload = message('template-sandbox-preload') end local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload} local sandboxCreateDisplay = message('sandbox-create-link-display') local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) local mirrorPreload = message('mirror-link-preload') local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} if subjectSpace == 828 then mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} end local mirrorDisplay = message('mirror-link-display') local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink) end if testcasesTitle.exists then local testcasesPage = testcasesTitle.prefixedText local testcasesDisplay = message('testcases-link-display') local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'} local testcasesEditDisplay = message('testcases-edit-link-display') local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay) -- for Modules, add testcases run link if exists if subjectSpace == 828 and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then local testcasesRunLinkDisplay = message('testcases-run-link-display') local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink) else testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) end else local testcasesPreload if subjectSpace == 828 then testcasesPreload = message('module-testcases-preload') else testcasesPreload = message('template-testcases-preload') end local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload} local testcasesCreateDisplay = message('testcases-create-link-display') local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink) end local messageName if subjectSpace == 828 then messageName = 'experiment-blurb-module' else messageName = 'experiment-blurb-template' end return message(messageName, {sandboxLinks, testcasesLinks}) end function p.makeCategoriesBlurb(args, env) --[[ -- Generates the text "Please add categories to the /doc subpage." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'doc-link-display' --> '/doc' -- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.' --]] local docTitle = env.docTitle if not docTitle then return nil end local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display')) return message('add-categories-blurb', {docPathLink}) end function p.makeSubpagesBlurb(args, env) --[[ -- Generates the "Subpages of this template" link. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'template-pagetype' --> 'template' -- 'module-pagetype' --> 'module' -- 'default-pagetype' --> 'page' -- 'subpages-link-display' --> 'Subpages of this $1' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle if not subjectSpace or not templateTitle then return nil end local pagetype if subjectSpace == 10 then pagetype = message('template-pagetype') elseif subjectSpace == 828 then pagetype = message('module-pagetype') else pagetype = message('default-pagetype') end local subpagesLink = makeWikilink( 'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', message('subpages-link-display', {pagetype}) ) return message('subpages-blurb', {subpagesLink}) end function p.makePrintBlurb(args, env) --[=[ -- Generates the blurb displayed when there is a print version of the template available. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'print-link-display' --> '/Print' -- 'print-blurb' --> 'A [[Help:Books/for experts#Improving the book layout|print version]]' -- .. ' of this template exists at $1.' -- .. ' If you make a change to this template, please update the print version as well.' -- 'display-print-category' --> true -- 'print-category' --> 'Templates with print versions' --]=] local printTitle = env.printTitle if not printTitle then return nil end local ret if printTitle.exists then local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display')) ret = message('print-blurb', {printLink}) local displayPrintCategory = message('display-print-category', nil, 'boolean') if displayPrintCategory then ret = ret .. makeCategoryLink(message('print-category')) end end return ret end ---------------------------------------------------------------------------- -- Tracking categories ---------------------------------------------------------------------------- function p.addTrackingCategories(env) --[[ -- Check if {{documentation}} is transcluded on a /doc or /testcases page. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'display-strange-usage-category' --> true -- 'doc-subpage' --> 'doc' -- 'testcases-subpage' --> 'testcases' -- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage' -- -- /testcases pages in the module namespace are not categorised, as they may have -- {{documentation}} transcluded automatically. --]] local title = env.title local subjectSpace = env.subjectSpace if not title or not subjectSpace then return nil end local subpage = title.subpageText local ret = '' if message('display-strange-usage-category', nil, 'boolean') and ( subpage == message('doc-subpage') or subjectSpace ~= 828 and subpage == message('testcases-subpage') ) then ret = ret .. makeCategoryLink(message('strange-usage-category')) end return ret end return p a63d1b5b0f61a188d1f167ce1d4c03fe26d5f1dc Module:Documentation/config 828 25 65 64 2018-05-21T20:36:03Z Wizzup 4 1 revision imported Scribunto text/plain ---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. ---------------------------------------------------------------------------------------------------- local cfg = {} -- Do not edit this line. ---------------------------------------------------------------------------------------------------- -- Protection template configuration ---------------------------------------------------------------------------------------------------- -- cfg['protection-reason-edit'] -- The protection reason for edit-protected templates to pass to -- [[Module:Protection banner]]. cfg['protection-reason-edit'] = 'template' --[[ ---------------------------------------------------------------------------------------------------- -- Sandbox notice configuration -- -- On sandbox pages the module can display a template notifying users that the current page is a -- sandbox, and the location of test cases pages, etc. The module decides whether the page is a -- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the -- messages that the notices contains. ---------------------------------------------------------------------------------------------------- --]] -- cfg['sandbox-notice-image'] -- The image displayed in the sandbox notice. cfg['sandbox-notice-image'] = '[[Image:Sandbox.svg|50px|alt=|link=]]' --[[ -- cfg['sandbox-notice-pagetype-template'] -- cfg['sandbox-notice-pagetype-module'] -- cfg['sandbox-notice-pagetype-other'] -- The page type of the sandbox page. The message that is displayed depends on the current subject -- namespace. This message is used in either cfg['sandbox-notice-blurb'] or -- cfg['sandbox-notice-diff-blurb']. --]] cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page' cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page' cfg['sandbox-notice-pagetype-other'] = 'sandbox page' --[[ -- cfg['sandbox-notice-blurb'] -- cfg['sandbox-notice-diff-blurb'] -- cfg['sandbox-notice-diff-display'] -- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence -- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page -- type, which is either cfg['sandbox-notice-pagetype-template'], -- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what -- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between -- the sandbox and the main template. The display value of the diff link is set by -- cfg['sandbox-notice-compare-link-display']. --]] cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.' cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).' cfg['sandbox-notice-compare-link-display'] = 'diff' --[[ -- cfg['sandbox-notice-testcases-blurb'] -- cfg['sandbox-notice-testcases-link-display'] -- cfg['sandbox-notice-testcases-run-blurb'] -- cfg['sandbox-notice-testcases-run-link-display'] -- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit. $1 is a link to the test cases page. -- cfg['sandbox-notice-testcases-link-display'] is the display value for that link. -- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test -- cases page, and $2 is a link to the page to run it. -- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test -- cases. --]] cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.' cfg['sandbox-notice-testcases-link-display'] = 'test cases' cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).' cfg['sandbox-notice-testcases-run-link-display'] = 'run' -- cfg['sandbox-category'] -- A category to add to all template sandboxes. cfg['sandbox-category'] = 'Template sandboxes' ---------------------------------------------------------------------------------------------------- -- Start box configuration ---------------------------------------------------------------------------------------------------- -- cfg['documentation-icon-wikitext'] -- The wikitext for the icon shown at the top of the template. cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- cfg['template-namespace-heading'] -- The heading shown in the template namespace. cfg['template-namespace-heading'] = 'Template documentation' -- cfg['module-namespace-heading'] -- The heading shown in the module namespace. cfg['module-namespace-heading'] = 'Module documentation' -- cfg['file-namespace-heading'] -- The heading shown in the file namespace. cfg['file-namespace-heading'] = 'Summary' -- cfg['other-namespaces-heading'] -- The heading shown in other namespaces. cfg['other-namespaces-heading'] = 'Documentation' -- cfg['view-link-display'] -- The text to display for "view" links. cfg['view-link-display'] = 'view' -- cfg['edit-link-display'] -- The text to display for "edit" links. cfg['edit-link-display'] = 'edit' -- cfg['history-link-display'] -- The text to display for "history" links. cfg['history-link-display'] = 'history' -- cfg['purge-link-display'] -- The text to display for "purge" links. cfg['purge-link-display'] = 'purge' -- cfg['create-link-display'] -- The text to display for "create" links. cfg['create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Link box (end box) configuration ---------------------------------------------------------------------------------------------------- -- cfg['transcluded-from-blurb'] -- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page. cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Wikipedia:Transclusion|transcluded]] from $1.' --[[ -- cfg['create-module-doc-blurb'] -- Notice displayed in the module namespace when the documentation subpage does not exist. -- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the -- display cfg['create-link-display']. --]] cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' ---------------------------------------------------------------------------------------------------- -- Experiment blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['experiment-blurb-template'] -- cfg['experiment-blurb-module'] -- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages. -- It is only shown in the template and module namespaces. With the default English settings, it -- might look like this: -- -- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages. -- -- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links. -- -- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending -- on what namespace we are in. -- -- Parameters: -- -- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display']) -- -- If the sandbox doesn't exist, it is in the format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display']) -- -- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload'] -- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display'] -- loads a default edit summary of cfg['mirror-edit-summary']. -- -- $2 is a link to the test cases page. If the test cases page exists, it is in the following format: -- -- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display']) -- -- If the test cases page doesn't exist, it is in the format: -- -- cfg['testcases-link-display'] (cfg['testcases-create-link-display']) -- -- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the -- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current -- namespace. --]] cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages." cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages." ---------------------------------------------------------------------------------------------------- -- Sandbox link configuration ---------------------------------------------------------------------------------------------------- -- cfg['sandbox-subpage'] -- The name of the template subpage typically used for sandboxes. cfg['sandbox-subpage'] = 'sandbox' -- cfg['template-sandbox-preload'] -- Preload file for template sandbox pages. cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox' -- cfg['module-sandbox-preload'] -- Preload file for Lua module sandbox pages. cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox' -- cfg['sandbox-link-display'] -- The text to display for "sandbox" links. cfg['sandbox-link-display'] = 'sandbox' -- cfg['sandbox-edit-link-display'] -- The text to display for sandbox "edit" links. cfg['sandbox-edit-link-display'] = 'edit' -- cfg['sandbox-create-link-display'] -- The text to display for sandbox "create" links. cfg['sandbox-create-link-display'] = 'create' -- cfg['compare-link-display'] -- The text to display for "compare" links. cfg['compare-link-display'] = 'diff' -- cfg['mirror-edit-summary'] -- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the -- template page. cfg['mirror-edit-summary'] = 'Create sandbox version of $1' -- cfg['mirror-link-display'] -- The text to display for "mirror" links. cfg['mirror-link-display'] = 'mirror' -- cfg['mirror-link-preload'] -- The page to preload when a user clicks the "mirror" link. cfg['mirror-link-preload'] = 'Template:Documentation/mirror' ---------------------------------------------------------------------------------------------------- -- Test cases link configuration ---------------------------------------------------------------------------------------------------- -- cfg['testcases-subpage'] -- The name of the template subpage typically used for test cases. cfg['testcases-subpage'] = 'testcases' -- cfg['template-testcases-preload'] -- Preload file for template test cases pages. cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases' -- cfg['module-testcases-preload'] -- Preload file for Lua module test cases pages. cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases' -- cfg['testcases-link-display'] -- The text to display for "testcases" links. cfg['testcases-link-display'] = 'testcases' -- cfg['testcases-edit-link-display'] -- The text to display for test cases "edit" links. cfg['testcases-edit-link-display'] = 'edit' -- cfg['testcases-run-link-display'] -- The text to display for test cases "run" links. cfg['testcases-run-link-display'] = 'run' -- cfg['testcases-create-link-display'] -- The text to display for test cases "create" links. cfg['testcases-create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Add categories blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['add-categories-blurb'] -- Text to direct users to add categories to the /doc subpage. Not used if the "content" or -- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a -- link to the /doc subpage with a display value of cfg['doc-link-display']. --]] cfg['add-categories-blurb'] = 'Please add categories to the $1 subpage.' -- cfg['doc-link-display'] -- The text to display when linking to the /doc subpage. cfg['doc-link-display'] = '/doc' ---------------------------------------------------------------------------------------------------- -- Subpages link configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['subpages-blurb'] -- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a -- display value of cfg['subpages-link-display']. In the English version this blurb is simply -- the link followed by a period, and the link display provides the actual text. --]] cfg['subpages-blurb'] = '$1.' --[[ -- cfg['subpages-link-display'] -- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'], -- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in -- the template namespace, the module namespace, or another namespace. --]] cfg['subpages-link-display'] = 'Subpages of this $1' -- cfg['template-pagetype'] -- The pagetype to display for template pages. cfg['template-pagetype'] = 'template' -- cfg['module-pagetype'] -- The pagetype to display for Lua module pages. cfg['module-pagetype'] = 'module' -- cfg['default-pagetype'] -- The pagetype to display for pages other than templates or Lua modules. cfg['default-pagetype'] = 'page' ---------------------------------------------------------------------------------------------------- -- Doc link configuration ---------------------------------------------------------------------------------------------------- -- cfg['doc-subpage'] -- The name of the subpage typically used for documentation pages. cfg['doc-subpage'] = 'doc' -- cfg['file-docpage-preload'] -- Preload file for documentation page in the file namespace. cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace' -- cfg['docpage-preload'] -- Preload file for template documentation pages in all namespaces. cfg['docpage-preload'] = 'Template:Documentation/preload' -- cfg['module-preload'] -- Preload file for Lua module documentation pages. cfg['module-preload'] = 'Template:Documentation/preload-module-doc' ---------------------------------------------------------------------------------------------------- -- Print version configuration ---------------------------------------------------------------------------------------------------- -- cfg['print-subpage'] -- The name of the template subpage used for print versions. cfg['print-subpage'] = 'Print' -- cfg['print-link-display'] -- The text to display when linking to the /Print subpage. cfg['print-link-display'] = '/Print' -- cfg['print-blurb'] -- Text to display if a /Print subpage exists. $1 is a link to the subpage with a display value of cfg['print-link-display']. cfg['print-blurb'] = 'A [[Help:Books/for experts#Improving the book layout|print version]] of this template exists at $1.' .. ' If you make a change to this template, please update the print version as well.' -- cfg['display-print-category'] -- Set to true to enable output of cfg['print-category'] if a /Print subpage exists. -- This should be a boolean value (either true or false). cfg['display-print-category'] = true -- cfg['print-category'] -- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists. cfg['print-category'] = 'Templates with print versions' ---------------------------------------------------------------------------------------------------- -- HTML and CSS configuration ---------------------------------------------------------------------------------------------------- -- cfg['main-div-id'] -- The "id" attribute of the main HTML "div" tag. cfg['main-div-id'] = 'template-documentation' -- cfg['main-div-classes'] -- The CSS classes added to the main HTML "div" tag. cfg['main-div-classes'] = 'template-documentation iezoomfix' -- cfg['start-box-linkclasses'] -- The CSS classes used for the [view][edit][history] or [create] links in the start box. cfg['start-box-linkclasses'] = 'mw-editsection-like plainlinks' -- cfg['start-box-link-id'] -- The HTML "id" attribute for the links in the start box. cfg['start-box-link-id'] = 'doc_editlinks' ---------------------------------------------------------------------------------------------------- -- {{fmbox}} template configuration ---------------------------------------------------------------------------------------------------- -- cfg['fmbox-id'] -- The id sent to the "id" parameter of the {{fmbox}} template. cfg['fmbox-id'] = 'documentation-meta-data' -- cfg['fmbox-style'] -- The value sent to the style parameter of {{fmbox}}. cfg['fmbox-style'] = 'background-color: #ecfcf4' -- cfg['fmbox-textstyle'] -- The value sent to the "textstyle parameter of {{fmbox}}. cfg['fmbox-textstyle'] = 'font-style: italic' ---------------------------------------------------------------------------------------------------- -- Tracking category configuration ---------------------------------------------------------------------------------------------------- -- cfg['display-strange-usage-category'] -- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage -- or a /testcases subpage. This should be a boolean value (either true or false). cfg['display-strange-usage-category'] = true -- cfg['strange-usage-category'] -- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a -- /doc subpage or a /testcases subpage. cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage' --[[ ---------------------------------------------------------------------------------------------------- -- End configuration -- -- Don't edit anything below this line. ---------------------------------------------------------------------------------------------------- --]] return cfg 37a2dfddf613853a4d472db0179b6fe844360519 Module:Effective protection expiry 828 26 67 66 2018-05-21T20:36:03Z Wizzup 4 1 revision imported Scribunto text/plain local p = {} -- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action == 'autoreview' then local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title) return stabilitySettings and stabilitySettings.expiry or 'unknown' elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 ) end local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename) if rawExpiry == 'infinity' then return 'infinity' elseif rawExpiry == '' then return 'unknown' else local year, month, day, hour, minute, second = rawExpiry:match( '^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$' ) if year then return string.format( '%s-%s-%sT%s:%s:%s', year, month, day, hour, minute, second ) else error('internal error in Module:Effective protection expiry; malformed expiry timestamp') end end end setmetatable(p, { __index = function(t, k) return function(frame) return t._main(k, frame.args[1]) end end }) return p 9a8c58dc2667232ed08a9b206a5d89ca8150312b Module:Effective protection level 828 27 69 68 2018-05-21T20:36:03Z Wizzup 4 1 revision imported Scribunto text/plain local p = {} -- Returns the permission required to perform a given action on a given title. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action == 'autoreview' then local level = mw.ext.FlaggedRevs.getStabilitySettings(title) level = level and level.autoreview if level == 'review' then return 'reviewer' elseif level ~= '' then return level else return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review end elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 ) end if title.namespace == 8 then -- MediaWiki namespace return 'sysop' elseif title.namespace == 2 and title.isSubpage and ( title.contentModel == 'javascript' or title.contentModel == 'css' or title.contentModel == 'json' ) then -- user JS, CSS or JSON page return 'sysop' end local level = title.protectionLevels[action] and title.protectionLevels[action][1] if level == 'sysop' or level == 'editprotected' then return 'sysop' elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page return 'sysop' elseif level == 'templateeditor' then return 'templateeditor' elseif action == 'move' then local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move. if blacklistentry and not blacklistentry.params.autoconfirmed then return 'templateeditor' elseif title.namespace == 6 then return 'filemover' elseif level == 'extendedconfirmed' then return 'extendedconfirmed' else return 'autoconfirmed' end end local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename) if blacklistentry then if not blacklistentry.params.autoconfirmed then return 'templateeditor' elseif level == 'extendedconfirmed' then return 'extendedconfirmed' else return 'autoconfirmed' end elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason return 'autoconfirmed' elseif level then return level elseif action == 'upload' then return 'autoconfirmed' elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts return 'user' else return '*' end end setmetatable(p, { __index = function(t, k) return function(frame) return t._main(k, frame.args[1]) end end }) return p b70c2a3062a675dddfc40dda11806358a5d50c07 Module:File link 828 28 71 70 2018-05-21T20:36:04Z Wizzup 4 1 revision imported Scribunto text/plain -- This module provides a library for formatting file wikilinks. local yesno = require('Module:Yesno') local checkType = require('libraryUtil').checkType local p = {} function p._main(args) checkType('_main', 1, args, 'table') -- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our -- own function to get the right error level. local function checkArg(key, val, level) if type(val) ~= 'string' then error(string.format( "type error in '%s' parameter of '_main' (expected string, got %s)", key, type(val) ), level) end end local ret = {} -- Adds a positional parameter to the buffer. local function addPositional(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = val end -- Adds a named parameter to the buffer. We assume that the parameter name -- is the same as the argument key. local function addNamed(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = key .. '=' .. val end -- Filename checkArg('file', args.file, 3) ret[#ret + 1] = 'File:' .. args.file -- Format if args.format then checkArg('format', args.format) if args.formatfile then checkArg('formatfile', args.formatfile) ret[#ret + 1] = args.format .. '=' .. args.formatfile else ret[#ret + 1] = args.format end end -- Border if yesno(args.border) then ret[#ret + 1] = 'border' end addPositional('location') addPositional('alignment') addPositional('size') addNamed('upright') addNamed('link') addNamed('alt') addNamed('page') addNamed('class') addNamed('lang') addNamed('start') addNamed('end') addNamed('thumbtime') addPositional('caption') return string.format('[[%s]]', table.concat(ret, '|')) end function p.main(frame) local origArgs = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:File link' }) if not origArgs.file then error("'file' parameter missing from [[Template:File link]]", 0) end -- Copy the arguments that were passed to a new table to avoid looking up -- every possible parameter in the frame object. local args = {} for k, v in pairs(origArgs) do -- Make _BLANK a special argument to add a blank parameter. For use in -- conditional templates etc. it is useful for blank arguments to be -- ignored, but we still need a way to specify them so that we can do -- things like [[File:Example.png|link=]]. if v == '_BLANK' then v = '' end args[k] = v end return p._main(args) end return p 66925f088d11530f2482f04181a3baaaa0ad3d0c Module:Hatnote 828 29 73 72 2018-05-21T20:36:04Z Wizzup 4 1 revision imported Scribunto text/plain -------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the {{hatnote}} and {{format link}} meta-templates and includes -- -- helper functions for other Lua hatnote modules. -- -------------------------------------------------------------------------------- local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise [[Module:Arguments]] local yesno -- lazily initialise [[Module:Yesno]] local p = {} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to false. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end function p.makeWikitextError(msg, helpLink, addTrackingCategory, title) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- [[Module:Yesno]], and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') title = title or mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' ([[' .. helpLink .. '|help]])' else helpText = '' end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '[[%s:%s]]', mw.site.namespaces[14].name, category ) else category = '' end return string.format( '<strong class="error">Error: %s%s.</strong>%s', msg, helpText, category ) end function p.disambiguate(page, disambiguator) -- Formats a page title with a disambiguation parenthetical, -- i.e. "Example" → "Example (disambiguation)". checkType('disambiguate', 1, page, 'string') checkType('disambiguate', 2, disambiguator, 'string', true) disambiguator = disambiguator or 'disambiguation' return string.format('%s (%s)', page, disambiguator) end -------------------------------------------------------------------------------- -- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the {{format hatnote link}} template. -------------------------------------------------------------------------------- function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end function p._formatLink(link, display) checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) -- Remove the initial colon for links where it was specified manually. link = removeInitialColon(link) -- Find whether a faux display value has been added with the {{!}} magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' §&nbsp;' .. section end end -- Assemble the link. if display then return string.format( '[[:%s|%s]]', string.gsub(link, '|(.*)$', ''), --display overwrites manual piping display ) else return string.format('[[:%s]]', link) end end -------------------------------------------------------------------------------- -- Hatnote -- -- Produces standard hatnote text. Implements the {{hatnote}} template. -------------------------------------------------------------------------------- function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) options = options or {} local classes = {'hatnote', 'navigation-not-searchable'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '<div role="note" class="%s">%s</div>', table.concat(classes, ' '), s ) end return p 68269290db95dca1fb485b69372e2b5a90ed79ad Module:Hatnote list 828 30 75 74 2018-05-21T20:36:04Z Wizzup 4 1 revision imported Scribunto text/plain -------------------------------------------------------------------------------- -- Module:Hatnote list -- -- -- -- This module produces and formats lists for use in hatnotes. In particular, -- -- it implements the for-see list, i.e. lists of "For X, see Y" statements, -- -- as used in {{about}}, {{redirect}}, and their variants. Also introduced -- -- are andList & orList helpers for formatting lists with those conjunctions. -- -------------------------------------------------------------------------------- local mArguments --initialize lazily local mHatnote = require('Module:Hatnote') local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local p = {} -------------------------------------------------------------------------------- -- List stringification helper functions -- -- These functions are used for stringifying lists, usually page lists inside -- the "Y" portion of "For X, see Y" for-see items. -------------------------------------------------------------------------------- --default options table used across the list stringification functions local stringifyListDefaultOptions = { conjunction = "and", separator = ",", altSeparator = ";", space = " ", formatted = false } -- Stringifies a list generically; probably shouldn't be used directly function stringifyList(list, options) -- Type-checks, defaults, and a shortcut checkType("stringifyList", 1, list, "table") if #list == 0 then return nil end checkType("stringifyList", 2, options, "table", true) options = options or {} for k, v in pairs(stringifyListDefaultOptions) do if options[k] == nil then options[k] = v end end local s = options.space -- Format the list if requested if options.formatted then list = mHatnote.formatPages(unpack(list)) end -- Set the separator; if any item contains it, use the alternate separator local separator = options.separator --searches display text only function searchDisp(t, f) return string.find(string.sub(t, (string.find(t, '|') or 0) + 1), f) end for k, v in pairs(list) do if searchDisp(v, separator) then separator = options.altSeparator break end end -- Set the conjunction, apply Oxford comma, and force a comma if #1 has "§" local conjunction = s .. options.conjunction .. s if #list == 2 and searchDisp(list[1], "§") or #list > 2 then conjunction = separator .. conjunction end -- Return the formatted string return mw.text.listToText(list, separator .. s, conjunction) end --DRY function function conjList (conj, list, fmt) return stringifyList(list, {conjunction = conj, formatted = fmt}) end -- Stringifies lists with "and" or "or" function p.andList (...) return conjList("and", ...) end function p.orList (...) return conjList("or", ...) end -------------------------------------------------------------------------------- -- For see -- -- Makes a "For X, see [[Y]]." list from raw parameters. Intended for the -- {{about}} and {{redirect}} templates and their variants. -------------------------------------------------------------------------------- --default options table used across the forSee family of functions local forSeeDefaultOptions = { andKeyword = 'and', title = mw.title.getCurrentTitle().text, otherText = 'other uses', forSeeForm = 'For %s, see %s.', } --Collapses duplicate punctuation function punctuationCollapse (text) local replacements = { ["%.%.$"] = ".", ["%?%.$"] = "?", ["%!%.$"] = "!", ["%.%]%]%.$"] = ".]]", ["%?%]%]%.$"] = "?]]", ["%!%]%]%.$"] = "!]]" } for k, v in pairs(replacements) do text = string.gsub(text, k, v) end return text end -- Structures arguments into a table for stringification, & options function p.forSeeArgsToTable (args, from, options) -- Type-checks and defaults checkType("forSeeArgsToTable", 1, args, 'table') checkType("forSeeArgsToTable", 2, from, 'number', true) from = from or 1 checkType("forSeeArgsToTable", 3, options, 'table', true) options = options or {} for k, v in pairs(forSeeDefaultOptions) do if options[k] == nil then options[k] = v end end -- maxArg's gotten manually because getArgs() and table.maxn aren't friends local maxArg = 0 for k, v in pairs(args) do if type(k) == 'number' and k > maxArg then maxArg = k end end -- Structure the data out from the parameter list: -- * forTable is the wrapper table, with forRow rows -- * Rows are tables of a "use" string & a "pages" table of pagename strings -- * Blanks are left empty for defaulting elsewhere, but can terminate list local forTable = {} local i = from local terminated = false -- If there is extra text, and no arguments are given, give nil value -- to not produce default of "For other uses, see foo (disambiguation)" if options.extratext and i > maxArg then return nil end -- Loop to generate rows repeat -- New empty row local forRow = {} -- On blank use, assume list's ended & break at end of this loop forRow.use = args[i] if not args[i] then terminated = true end -- New empty list of pages forRow.pages = {} -- Insert first pages item if present table.insert(forRow.pages, args[i + 1]) -- If the param after next is "and", do inner loop to collect params -- until the "and"'s stop. Blanks are ignored: "1|and||and|3" → {1, 3} while args[i + 2] == options.andKeyword do if args[i + 3] then table.insert(forRow.pages, args[i + 3]) end -- Increment to next "and" i = i + 2 end -- Increment to next use i = i + 2 -- Append the row table.insert(forTable, forRow) until terminated or i > maxArg return forTable end -- Stringifies a table as formatted by forSeeArgsToTable function p.forSeeTableToString (forSeeTable, options) -- Type-checks and defaults checkType("forSeeTableToString", 1, forSeeTable, "table", true) checkType("forSeeTableToString", 2, options, "table", true) options = options or {} for k, v in pairs(forSeeDefaultOptions) do if options[k] == nil then options[k] = v end end -- Stringify each for-see item into a list local strList = {} if forSeeTable then for k, v in pairs(forSeeTable) do local useStr = v.use or options.otherText local pagesStr = p.andList(v.pages, true) or mHatnote._formatLink(mHatnote.disambiguate(options.title)) local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr) forSeeStr = punctuationCollapse(forSeeStr) table.insert(strList, forSeeStr) end end if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..'.')) end -- Return the concatenated list return table.concat(strList, ' ') end -- Produces a "For X, see [[Y]]" string from arguments. Expects index gaps -- but not blank/whitespace values. Ignores named args and args < "from". function p._forSee (args, from, options) local forSeeTable = p.forSeeArgsToTable(args, from, options) return p.forSeeTableToString(forSeeTable, options) end -- As _forSee, but uses the frame. function p.forSee (frame, from, options) mArguments = require('Module:Arguments') return p._forSee(mArguments.getArgs(frame), from, options) end return p 1550e576b518a6a3a72eea6142608a84c010ebe8 Module:Infobox 828 31 77 76 2018-05-21T20:36:04Z Wizzup 4 1 revision imported Scribunto text/plain -- -- This module implements {{Infobox}} -- local p = {} local navbar = require('Module:Navbar')._navbar local args = {} local origArgs local root local function notempty( s ) return s and s:match( '%S' ) end local function fixChildBoxes(sval, tt) if notempty(sval) then local marker = '<span class=special_infobox_marker>' local s = sval s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1') s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker) if s:match(marker) then s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '') s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1') s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1') s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1') s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1') s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1') s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1') s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1') s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1') end if s:match(marker) then local subcells = mw.text.split(s, marker) s = '' for k = 1, #subcells do if k == 1 then s = s .. subcells[k] .. '</' .. tt .. '></tr>' elseif k == #subcells then local rowstyle = ' style="display:none"' if notempty(subcells[k]) then rowstyle = '' end s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k] elseif notempty(subcells[k]) then if (k % 2) == 0 then s = s .. subcells[k] else s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>' end end end end return s else return sval end end local function union(t1, t2) -- Returns the union of the values of two tables, as a sequence. local vals = {} for k, v in pairs(t1) do vals[v] = true end for k, v in pairs(t2) do vals[v] = true end local ret = {} for k, v in pairs(vals) do table.insert(ret, k) end return ret end local function getArgNums(prefix) -- Returns a table containing the numbers of the arguments that exist -- for the specified prefix. For example, if the prefix was 'data', and -- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}. local nums = {} for k, v in pairs(args) do local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end local function addRow(rowArgs) -- Adds a row to the infobox, with either a header cell -- or a label/data cell combination. if rowArgs.header then root :tag('tr') :addClass(rowArgs.rowclass) :cssText(rowArgs.rowstyle) :attr('id', rowArgs.rowid) :tag('th') :attr('colspan', 2) :attr('id', rowArgs.headerid) :addClass(rowArgs.class) :addClass(args.headerclass) :css('text-align', 'center') :cssText(args.headerstyle) :cssText(rowArgs.rowcellstyle) :wikitext(fixChildBoxes(rowArgs.header, 'th')) elseif rowArgs.data then local row = root:tag('tr') row:addClass(rowArgs.rowclass) row:cssText(rowArgs.rowstyle) row:attr('id', rowArgs.rowid) if rowArgs.label then row :tag('th') :attr('scope', 'row') :attr('id', rowArgs.labelid) :cssText(args.labelstyle) :cssText(rowArgs.rowcellstyle) :wikitext(rowArgs.label) :done() end local dataCell = row:tag('td') if not rowArgs.label then dataCell :attr('colspan', 2) :css('text-align', 'center') end dataCell :attr('id', rowArgs.dataid) :addClass(rowArgs.class) :cssText(rowArgs.datastyle) :cssText(rowArgs.rowcellstyle) :newline() :wikitext(fixChildBoxes(rowArgs.data, 'td')) end end local function renderTitle() if not args.title then return end root :tag('caption') :addClass(args.titleclass) :cssText(args.titlestyle) :wikitext(args.title) end local function renderAboveRow() if not args.above then return end root :tag('tr') :tag('th') :attr('colspan', 2) :addClass(args.aboveclass) :css('text-align', 'center') :css('font-size', '125%') :css('font-weight', 'bold') :cssText(args.abovestyle) :wikitext(fixChildBoxes(args.above,'th')) end local function renderBelowRow() if not args.below then return end root :tag('tr') :tag('td') :attr('colspan', '2') :addClass(args.belowclass) :css('text-align', 'center') :cssText(args.belowstyle) :newline() :wikitext(fixChildBoxes(args.below,'td')) end local function renderSubheaders() if args.subheader then args.subheader1 = args.subheader end if args.subheaderrowclass then args.subheaderrowclass1 = args.subheaderrowclass end local subheadernums = getArgNums('subheader') for k, num in ipairs(subheadernums) do addRow({ data = args['subheader' .. tostring(num)], datastyle = args.subheaderstyle or args['subheaderstyle' .. tostring(num)], class = args.subheaderclass, rowclass = args['subheaderrowclass' .. tostring(num)] }) end end local function renderImages() if args.image then args.image1 = args.image end if args.caption then args.caption1 = args.caption end local imagenums = getArgNums('image') for k, num in ipairs(imagenums) do local caption = args['caption' .. tostring(num)] local data = mw.html.create():wikitext(args['image' .. tostring(num)]) if caption then data :tag('div') :cssText(args.captionstyle) :wikitext(caption) end addRow({ data = tostring(data), datastyle = args.imagestyle, class = args.imageclass, rowclass = args['imagerowclass' .. tostring(num)] }) end end local function renderRows() -- Gets the union of the header and data argument numbers, -- and renders them all in order using addRow. local rownums = union(getArgNums('header'), getArgNums('data')) table.sort(rownums) for k, num in ipairs(rownums) do addRow({ header = args['header' .. tostring(num)], label = args['label' .. tostring(num)], data = args['data' .. tostring(num)], datastyle = args.datastyle, class = args['class' .. tostring(num)], rowclass = args['rowclass' .. tostring(num)], rowstyle = args['rowstyle' .. tostring(num)], rowcellstyle = args['rowcellstyle' .. tostring(num)], dataid = args['dataid' .. tostring(num)], labelid = args['labelid' .. tostring(num)], headerid = args['headerid' .. tostring(num)], rowid = args['rowid' .. tostring(num)] }) end end local function renderNavBar() if not args.name then return end root :tag('tr') :tag('td') :attr('colspan', '2') :css('text-align', 'right') :wikitext(navbar{ args.name, mini = 1, }) end local function renderItalicTitle() local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title']) if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'})) end end local function renderTrackingCategories() if args.decat ~= 'yes' then if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then root:wikitext('[[Category:Articles which use infobox templates with no data rows]]') end if args.child == 'yes' and args.title then root:wikitext('[[Category:Pages which use embedded infobox templates with the title parameter]]') end end end local function _infobox() -- Specify the overall layout of the infobox, with special settings -- if the infobox is used as a 'child' inside another infobox. if args.child ~= 'yes' then root = mw.html.create('table') root :addClass((args.subbox ~= 'yes') and 'infobox' or nil) :addClass(args.bodyclass) if args.subbox == 'yes' then root :css('padding', '0') :css('border', 'none') :css('margin', '-3px') :css('width', 'auto') :css('min-width', '100%') :css('font-size', '100%') :css('clear', 'none') :css('float', 'none') :css('background-color', 'transparent') else root :css('width', '22em') end root :cssText(args.bodystyle) renderTitle() renderAboveRow() else root = mw.html.create() root :wikitext(args.title) end renderSubheaders() renderImages() renderRows() renderBelowRow() renderNavBar() renderItalicTitle() renderTrackingCategories() return tostring(root) end local function preprocessSingleArg(argName) -- If the argument exists and isn't blank, add it to the argument table. -- Blank arguments are treated as nil to match the behaviour of ParserFunctions. if origArgs[argName] and origArgs[argName] ~= '' then args[argName] = origArgs[argName] end end local function preprocessArgs(prefixTable, step) -- Assign the parameters with the given prefixes to the args table, in order, in batches -- of the step size specified. This is to prevent references etc. from appearing in the -- wrong order. The prefixTable should be an array containing tables, each of which has -- two possible fields, a "prefix" string and a "depend" table. The function always parses -- parameters containing the "prefix" string, but only parses parameters in the "depend" -- table if the prefix parameter is present and non-blank. if type(prefixTable) ~= 'table' then error("Non-table value detected for the prefix table", 2) end if type(step) ~= 'number' then error("Invalid step value detected", 2) end -- Get arguments without a number suffix, and check for bad input. for i,v in ipairs(prefixTable) do if type(v) ~= 'table' or type(v.prefix) ~= "string" or (v.depend and type(v.depend) ~= 'table') then error('Invalid input detected to preprocessArgs prefix table', 2) end preprocessSingleArg(v.prefix) -- Only parse the depend parameter if the prefix parameter is present and not blank. if args[v.prefix] and v.depend then for j, dependValue in ipairs(v.depend) do if type(dependValue) ~= 'string' then error('Invalid "depend" parameter value detected in preprocessArgs') end preprocessSingleArg(dependValue) end end end -- Get arguments with number suffixes. local a = 1 -- Counter variable. local moreArgumentsExist = true while moreArgumentsExist == true do moreArgumentsExist = false for i = a, a + step - 1 do for j,v in ipairs(prefixTable) do local prefixArgName = v.prefix .. tostring(i) if origArgs[prefixArgName] then moreArgumentsExist = true -- Do another loop if any arguments are found, even blank ones. preprocessSingleArg(prefixArgName) end -- Process the depend table if the prefix argument is present and not blank, or -- we are processing "prefix1" and "prefix" is present and not blank, and -- if the depend table is present. if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then for j,dependValue in ipairs(v.depend) do local dependArgName = dependValue .. tostring(i) preprocessSingleArg(dependArgName) end end end end a = a + step end end function p.infobox(frame) -- If called via #invoke, use the args passed into the invoking template. -- Otherwise, for testing purposes, assume args are being passed directly in. if frame == mw.getCurrentFrame() then origArgs = frame:getParent().args else origArgs = frame end -- Parse the data parameters in the same order that the old {{infobox}} did, so that -- references etc. will display in the expected places. Parameters that depend on -- another parameter are only processed if that parameter is present, to avoid -- phantom references appearing in article reference lists. preprocessSingleArg('child') preprocessSingleArg('bodyclass') preprocessSingleArg('subbox') preprocessSingleArg('bodystyle') preprocessSingleArg('title') preprocessSingleArg('titleclass') preprocessSingleArg('titlestyle') preprocessSingleArg('above') preprocessSingleArg('aboveclass') preprocessSingleArg('abovestyle') preprocessArgs({ {prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}} }, 10) preprocessSingleArg('subheaderstyle') preprocessSingleArg('subheaderclass') preprocessArgs({ {prefix = 'image', depend = {'caption', 'imagerowclass'}} }, 10) preprocessSingleArg('captionstyle') preprocessSingleArg('imagestyle') preprocessSingleArg('imageclass') preprocessArgs({ {prefix = 'header'}, {prefix = 'data', depend = {'label'}}, {prefix = 'rowclass'}, {prefix = 'rowstyle'}, {prefix = 'rowcellstyle'}, {prefix = 'class'}, {prefix = 'dataid'}, {prefix = 'labelid'}, {prefix = 'headerid'}, {prefix = 'rowid'} }, 50) preprocessSingleArg('headerclass') preprocessSingleArg('headerstyle') preprocessSingleArg('labelstyle') preprocessSingleArg('datastyle') preprocessSingleArg('below') preprocessSingleArg('belowclass') preprocessSingleArg('belowstyle') preprocessSingleArg('name') args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent preprocessSingleArg('decat') return _infobox() end return p 3c0184beda9afaf0fe936d06101680d646f31874 Module:List 828 32 79 78 2018-05-21T20:36:05Z Wizzup 4 1 revision imported Scribunto text/plain -- This module outputs different kinds of lists. At the moment, bulleted, -- unbulleted, horizontal, ordered, and horizontal ordered lists are supported. local libUtil = require('libraryUtil') local checkType = libUtil.checkType local mTableTools = require('Module:TableTools') local p = {} local listTypes = { ['bulleted'] = true, ['unbulleted'] = true, ['horizontal'] = true, ['ordered'] = true, ['horizontal_ordered'] = true } function p.makeListData(listType, args) -- Constructs a data table to be passed to p.renderList. local data = {} -- Classes data.classes = {} if listType == 'horizontal' or listType == 'horizontal_ordered' then table.insert(data.classes, 'hlist hlist-separated') elseif listType == 'unbulleted' then table.insert(data.classes, 'plainlist') end table.insert(data.classes, args.class) -- Main div style data.style = args.style -- Indent for horizontal lists if listType == 'horizontal' or listType == 'horizontal_ordered' then local indent = tonumber(args.indent) indent = indent and indent * 1.6 or 0 if indent > 0 then data.marginLeft = indent .. 'em' end end -- List style types for ordered lists -- This could be "1, 2, 3", "a, b, c", or a number of others. The list style -- type is either set by the "type" attribute or the "list-style-type" CSS -- property. if listType == 'ordered' or listType == 'horizontal_ordered' then data.listStyleType = args.list_style_type or args['list-style-type'] data.type = args['type'] -- Detect invalid type attributes and attempt to convert them to -- list-style-type CSS properties. if data.type and not data.listStyleType and not tostring(data.type):find('^%s*[1AaIi]%s*$') then data.listStyleType = data.type data.type = nil end end -- List tag type if listType == 'ordered' or listType == 'horizontal_ordered' then data.listTag = 'ol' else data.listTag = 'ul' end -- Start number for ordered lists data.start = args.start if listType == 'horizontal_ordered' then -- Apply fix to get start numbers working with horizontal ordered lists. local startNum = tonumber(data.start) if startNum then data.counterReset = 'listitem ' .. tostring(startNum - 1) end end -- List style -- ul_style and ol_style are included for backwards compatibility. No -- distinction is made for ordered or unordered lists. data.listStyle = args.list_style -- List items -- li_style is included for backwards compatibility. item_style was included -- to be easier to understand for non-coders. data.itemStyle = args.item_style or args.li_style data.items = {} for i, num in ipairs(mTableTools.numKeys(args)) do local item = {} item.content = args[num] item.style = args['item' .. tostring(num) .. '_style'] or args['item_style' .. tostring(num)] item.value = args['item' .. tostring(num) .. '_value'] or args['item_value' .. tostring(num)] table.insert(data.items, item) end return data end function p.renderList(data) -- Renders the list HTML. -- Return the blank string if there are no list items. if type(data.items) ~= 'table' or #data.items < 1 then return '' end -- Render the main div tag. local root = mw.html.create('div') for i, class in ipairs(data.classes or {}) do root:addClass(class) end root:css{['margin-left'] = data.marginLeft} if data.style then root:cssText(data.style) end -- Render the list tag. local list = root:tag(data.listTag or 'ul') list :attr{start = data.start, type = data.type} :css{ ['counter-reset'] = data.counterReset, ['list-style-type'] = data.listStyleType } if data.listStyle then list:cssText(data.listStyle) end -- Render the list items for i, t in ipairs(data.items or {}) do local item = list:tag('li') if data.itemStyle then item:cssText(data.itemStyle) end if t.style then item:cssText(t.style) end item :attr{value = t.value} :wikitext(t.content) end return tostring(root) end function p.renderTrackingCategories(args) local isDeprecated = false -- Tracks deprecated parameters. for k, v in pairs(args) do k = tostring(k) if k:find('^item_style%d+$') or k:find('^item_value%d+$') then isDeprecated = true break end end local ret = '' if isDeprecated then ret = ret .. '[[Category:List templates with deprecated parameters]]' end return ret end function p.makeList(listType, args) if not listType or not listTypes[listType] then error(string.format( "bad argument #1 to 'makeList' ('%s' is not a valid list type)", tostring(listType) ), 2) end checkType('makeList', 2, args, 'table') local data = p.makeListData(listType, args) local list = p.renderList(data) local trackingCategories = p.renderTrackingCategories(args) return list .. trackingCategories end for listType in pairs(listTypes) do p[listType] = function (frame) local mArguments = require('Module:Arguments') local origArgs = mArguments.getArgs(frame) -- Copy all the arguments to a new table, for faster indexing. local args = {} for k, v in pairs(origArgs) do args[k] = v end return p.makeList(listType, args) end end return p b8b58ee51a76c9278f4768603e06adfb83cac978 Module:Lua banner 828 33 81 80 2018-05-21T20:36:05Z Wizzup 4 1 revision imported Scribunto text/plain -- This module implements the {{lua}} template. local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local p = {} function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end function p._main(args) local modules = mTableTools.compressSparseArray(args) local box = p.renderBox(modules) local trackingCategories = p.renderTrackingCategories(args, modules) return box .. trackingCategories end function p.renderBox(modules) local boxArgs = {} if #modules < 1 then boxArgs.text = '<strong class="error">Error: no modules specified</strong>' else local moduleLinks = {} for i, module in ipairs(modules) do moduleLinks[i] = string.format('[[:%s]]', module) end local moduleList = mList.makeList('bulleted', moduleLinks) boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList end boxArgs.type = 'notice' boxArgs.small = true boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=|link=]]' return mMessageBox.main('mbox', boxArgs) end function p.renderTrackingCategories(args, modules, titleObj) if yesno(args.nocat) then return '' end local cats = {} -- Error category if #modules < 1 then cats[#cats + 1] = 'Lua templates with errors' end -- Lua templates category titleObj = titleObj or mw.title.getCurrentTitle() local subpageBlacklist = { doc = true, sandbox = true, sandbox2 = true, testcases = true } if titleObj.namespace == 10 and not subpageBlacklist[titleObj.subpageText] then local category = args.category if not category then local categories = { ['Module:String'] = 'Lua String-based templates', ['Module:Math'] = 'Templates based on the Math Lua module', ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module', ['Module:Citation'] = 'Lua-based citation templates' } categories['Module:Citation/CS1'] = categories['Module:Citation'] category = modules[1] and categories[modules[1]] category = category or 'Lua-based templates' end cats[#cats + 1] = category local protLevels = { autoconfirmed = 1, extendedconfirmed = 2, templateeditor = 3, sysop = 4 } local currentProt = titleObj.protectionLevels["edit"][1] if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end for i, module in ipairs(modules) do local moduleProt = mw.title.new(module).protectionLevels["edit"][1] if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end if moduleProt < currentProt then cats[#cats + 1] = "Templates using under-protected Lua modules" break end end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end return p 7bea7885f6c43535b79846f2bf414fd167d42d11 Module:Message box 828 34 83 82 2018-05-21T20:36:06Z Wizzup 4 1 revision imported Scribunto text/plain -- This is a meta-module for producing message box templates, including -- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}. -- Load necessary modules. require('Module:No globals') local getArgs local yesno = require('Module:Yesno') -- Get a language object for formatDate and ucfirst. local lang = mw.language.getContentLanguage() -- Define constants local CONFIG_MODULE = 'Module:Message box/configuration' -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Get the title object, passing the function through pcall -- in case we are over the expensive function count limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Returns the union of two arrays. local vals = {} for i, v in ipairs(t1) do vals[v] = true end for i, v in ipairs(t2) do vals[v] = true end local ret = {} for k in pairs(vals) do table.insert(ret, k) end table.sort(ret) return ret end local function getArgNums(args, prefix) local nums = {} for k, v in pairs(args) do local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end -------------------------------------------------------------------------------- -- Box class definition -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} -- Set the title object and the namespace. obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Set the config for our box type. obj.cfg = cfg[boxType] if not obj.cfg then local ns = obj.title.namespace -- boxType is "mbox" or invalid input if ns == 0 then obj.cfg = cfg.ambox -- main namespace elseif ns == 6 then obj.cfg = cfg.imbox -- file namespace elseif ns == 14 then obj.cfg = cfg.cmbox -- category namespace else local nsTable = mw.site.namespaces[ns] if nsTable and nsTable.isTalk then obj.cfg = cfg.tmbox -- any talk namespace else obj.cfg = cfg.ombox -- other namespaces or invalid input end end end -- Set the arguments, and remove all blank arguments except for the ones -- listed in cfg.allowBlankParams. do local newArgs = {} for k, v in pairs(args) do if v ~= '' then newArgs[k] = v end end for i, param in ipairs(obj.cfg.allowBlankParams or {}) do newArgs[param] = args[param] end obj.args = newArgs end -- Define internal data structure. obj.categories = {} obj.classes = {} -- For lazy loading of [[Module:Category handler]]. obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(ns, cat, sort) if not cat then return nil end if sort then cat = string.format('[[Category:%s|%s]]', cat, sort) else cat = string.format('[[Category:%s]]', cat) end self.hasCategories = true self.categories[ns] = self.categories[ns] or {} table.insert(self.categories[ns], cat) end function MessageBox:addClass(class) if not class then return nil end table.insert(self.classes, class) end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Get type data. self.type = args.type local typeData = cfg.types[self.type] self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData typeData = typeData or cfg.types[cfg.default] self.typeClass = typeData.class self.typeImage = typeData.image -- Find if the box has been wrongly substituted. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Find whether we are using a small message box. self.isSmall = cfg.allowSmall and ( cfg.smallParam and args.small == cfg.smallParam or not cfg.smallParam and yesno(args.small) ) -- Add attributes, classes and styles. self.id = args.id if yesno(args.plainlinks) ~= false then self:addClass('plainlinks') end for _, class in ipairs(cfg.classes or {}) do self:addClass(class) end if self.isSmall then self:addClass(cfg.smallClass or 'mbox-small') end self:addClass(self.typeClass) self:addClass(args.class) self.style = args.style self.attrs = args.attrs -- Set text style. self.textstyle = args.textstyle -- Find if we are on the template page or not. This functionality is only -- used if useCollapsibleTextFields is set, or if both cfg.templateCategory -- and cfg.templateCategoryRequireName are set. self.useCollapsibleTextFields = cfg.useCollapsibleTextFields if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then self.name = args.name if self.name then local templateName = mw.ustring.match( self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$' ) or self.name templateName = 'Template:' .. templateName self.templateTitle = getTitleObject(templateName) end self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) end -- Process data for collapsible text fields. At the moment these are only -- used in {{ambox}}. if self.useCollapsibleTextFields then -- Get the self.issue value. if self.isSmall and args.smalltext then self.issue = args.smalltext else local sect if args.sect == '' then sect = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then sect = 'This ' .. args.sect end local issue = args.issue issue = type(issue) == 'string' and issue ~= '' and issue or nil local text = args.text text = type(text) == 'string' and text or nil local issues = {} table.insert(issues, sect) table.insert(issues, issue) table.insert(issues, text) self.issue = table.concat(issues, ' ') end -- Get the self.talk value. local talk = args.talk -- Show talk links on the template page or template subpages if the talk -- parameter is blank. if talk == '' and self.templateTitle and ( mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle) ) then talk = '#' elseif talk == '' then talk = nil end if talk then -- If the talk value is a talk page, make a link to that page. Else -- assume that it's a section heading, and make a link to the talk -- page of the current page with that section heading. local talkTitle = getTitleObject(talk) local talkArgIsTalkPage = true if not talkTitle or not talkTitle.isTalkPage then talkArgIsTalkPage = false talkTitle = getTitleObject( self.title.text, mw.site.namespaces[self.title.namespace].talk.id ) end if talkTitle and talkTitle.exists then local talkText = 'Relevant discussion may be found on' if talkArgIsTalkPage then talkText = string.format( '%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText ) else talkText = string.format( '%s the [[%s#%s|talk page]].', talkText, talkTitle.prefixedText, talk ) end self.talk = talkText end end -- Get other values. self.fix = args.fix ~= '' and args.fix or nil local date if args.date and args.date ~= '' then date = args.date elseif args.date == '' and self.isTemplatePage then date = lang:formatDate('F Y') end if date then self.date = string.format(" <small>''(%s)''</small>", date) end self.info = args.info if yesno(args.removalnotice) then self.removalNotice = cfg.removalNotice end end -- Set the non-collapsible text field. At the moment this is used by all box -- types other than ambox, and also by ambox when small=yes. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- Set the below row. self.below = cfg.below and args.below -- General image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell if cfg.imageEmptyCellStyle then self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px' end -- Left image settings. local imageLeft = self.isSmall and args.smallimage or args.image if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none' or not cfg.imageCheckBlank and imageLeft ~= 'none' then self.imageLeft = imageLeft if not imageLeft then local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px' self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage or 'Imbox notice.png', imageSize) end end -- Right image settings. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end end function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return nil end local nums = {} for _, prefix in ipairs{'cat', 'category', 'all'} do args[prefix .. '1'] = args[prefix] nums = union(nums, getArgNums(args, prefix)) end -- The following is roughly equivalent to the old {{Ambox/category}}. local date = args.date date = type(date) == 'string' and date local preposition = 'from' for _, num in ipairs(nums) do local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)] local allCat = args['all' .. tostring(num)] mainCat = type(mainCat) == 'string' and mainCat allCat = type(allCat) == 'string' and allCat if mainCat and date and date ~= '' then local catTitle = string.format('%s %s %s', mainCat, preposition, date) self:addCat(0, catTitle) catTitle = getTitleObject('Category:' .. catTitle) if not catTitle or not catTitle.exists then self:addCat(0, 'Articles with invalid date parameter in template') end elseif mainCat and (not date or date == '') then self:addCat(0, mainCat) end if allCat then self:addCat(0, allCat) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- Add template categories. if cfg.templateCategory then if cfg.templateCategoryRequireName then if self.isTemplatePage then self:addCat(10, cfg.templateCategory) end elseif not self.title.isSubpage then self:addCat(10, cfg.templateCategory) end end -- Add template error categories. if cfg.templateErrorCategory then local templateErrorCategory = cfg.templateErrorCategory local templateCat, templateSort if not self.name and not self.title.isSubpage then templateCat = templateErrorCategory elseif self.isTemplatePage then local paramsToCheck = cfg.templateErrorParamsToCheck or {} local count = 0 for i, param in ipairs(paramsToCheck) do if not args[param] then count = count + 1 end end if count > 0 then templateCat = templateErrorCategory templateSort = tostring(count) end if self.categoryNums and #self.categoryNums > 0 then templateCat = templateErrorCategory templateSort = 'C' end end self:addCat(10, templateCat, templateSort) end end function MessageBox:setAllNamespaceCategories() -- Set categories for all namespaces. if self.invalidTypeError then local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort) end if self.isSubstituted then self:addCat('all', 'Pages with incorrectly substituted templates') end end function MessageBox:setCategories() if self.title.namespace == 0 then self:setMainspaceCategories() elseif self.title.namespace == 10 then self:setTemplateCategories() end self:setAllNamespaceCategories() end function MessageBox:renderCategories() if not self.hasCategories then -- No categories added, no need to pass them to Category handler so, -- if it was invoked, it would return the empty string. -- So we shortcut and return the empty string. return "" end -- Convert category tables to strings and pass them through -- [[Module:Category handler]]. return require('Module:Category handler')._main{ main = table.concat(self.categories[0] or {}), template = table.concat(self.categories[10] or {}), all = table.concat(self.categories.all or {}), nocat = self.args.nocat, page = self.args.page } end function MessageBox:export() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end -- Create the box table. local boxTable = root:tag('table') boxTable:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do boxTable:addClass(class or nil) end boxTable :cssText(self.style or nil) :attr('role', 'presentation') if self.attrs then boxTable:attr(self.attrs) end -- Add the left-hand image. local row = boxTable:tag('tr') if self.imageLeft then local imageLeftCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then -- If we are using a div, redefine imageLeftCell so that the image -- is inside it. Divs use style="width: 52px;", which limits the -- image width to 52px. If any images in a div are wider than that, -- they may overlap with the text or cause other display problems. imageLeftCell = imageLeftCell:tag('div'):css('width', '52px') end imageLeftCell:wikitext(self.imageLeft or nil) elseif self.imageEmptyCell then -- Some message boxes define an empty cell if no image is specified, and -- some don't. The old template code in templates where empty cells are -- specified gives the following hint: "No image. Cell with some width -- or padding necessary for text cell to have 100% width." row:tag('td') :addClass('mbox-empty-cell') :cssText(self.imageEmptyCellStyle or nil) end -- Add the text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) and not self.isSmall then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('small') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then -- If we are using a div, redefine imageRightCell so that the image -- is inside it. imageRightCell = imageRightCell:tag('div'):css('width', '52px') end imageRightCell :wikitext(self.imageRight or nil) end -- Add the below row. if self.below then boxTable:tag('tr') :tag('td') :attr('colspan', self.imageRight and '3' or '2') :addClass('mbox-text') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :css('text-align', 'center') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p, mt = {}, {} function p._exportClasses() -- For testing. return { MessageBox = MessageBox } end function p.main(boxType, args, cfgTables) local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE)) box:setParameters() box:setCategories() return box:export() end function mt.__index(t, k) return function (frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(k, getArgs(frame, {trim = false, removeBlanks = false})) end end return setmetatable(p, mt) 39d4071dc75c256d3094ce8a34e631eada1e3e2e Module:Message box/configuration 828 35 85 84 2018-05-21T20:36:06Z Wizzup 4 1 revision imported Scribunto text/plain -------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Padlock-silver-medium.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'Article message templates', templateCategoryRequireName = true, templateErrorCategory = 'Article message templates with missing parameters', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '[[Help:Maintenance template removal|Learn how and when to remove this template message]]' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Padlock-silver-medium.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Padlock-silver-medium.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox license.png' -- @todo We need an SVG version of this }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg' }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'File message boxes' }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Padlock-silver-medium.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Padlock-silver-medium.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, imageEmptyCellStyle = true, templateCategory = 'Talk message boxes' } } 0a35f7ed72823141fd5c661fd96cfa6d7a3a823a Module:Navbar 828 36 87 86 2018-05-21T20:36:06Z Wizzup 4 1 revision imported Scribunto text/plain local p = {} local getArgs local ul function p.addItem (mini, full, link, descrip, args, url) local l if url then l = {'[', '', ']'} else l = {'[[', '|', ']]'} end ul:tag('li') :addClass('nv-'..full) :wikitext(l[1] .. link .. l[2]) :tag(args.mini and 'abbr' or 'span') :attr('title', descrip..' this template') :cssText(args.fontstyle) :wikitext(args.mini and mini or full) :done() :wikitext(l[3]) end function p.brackets (position, c, args, div) if args.brackets then div :tag('span') :css('margin-'..position, '-0.125em') :cssText(args.fontstyle) :wikitext(c) end end function p._navbar(args) local show = {true, true, true, false, false, false} local titleArg = 1 if args.collapsible then titleArg = 2 if not args.plain then args.mini = 1 end if args.fontcolor then args.fontstyle = 'color:' .. args.fontcolor .. ';' end args.style = 'float:left; text-align:left' end if args.template then titleArg = 'template' show = {true, false, false, false, false, false} local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6, talk = 2, edit = 3, hist = 4, move = 5, watch = 6} for k,v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do local num = index[v] if num then show[num] = true end end end if args.noedit then show[3] = false end local titleText = args[titleArg] or (':' .. mw.getCurrentFrame():getParent():getTitle()) local title = mw.title.new(mw.text.trim(titleText), 'Template') if not title then error('Invalid title ' .. titleText) end local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or '' local div = mw.html.create():tag('div') div :addClass('plainlinks') :addClass('hlist') :addClass('navbar') :cssText(args.style) if args.mini then div:addClass('mini') end if not (args.mini or args.plain) then div :tag('span') :css('word-spacing', 0) :cssText(args.fontstyle) :wikitext(args.text or 'This box:') :wikitext(' ') end p.brackets('right', '&#91; ', args, div) ul = div:tag('ul') if show[1] then p.addItem('v', 'view', title.fullText, 'View', args) end if show[2] then p.addItem('t', 'talk', talkpage, 'Discuss', args) end if show[3] then p.addItem('e', 'edit', title:fullUrl('action=edit'), 'Edit', args, true) end if show[4] then p.addItem('h', 'hist', title:fullUrl('action=history'), 'History of', args, true) end if show[5] then local move = mw.title.new ('Special:Movepage') p.addItem('m', 'move', move:fullUrl('target='..title.fullText), 'Move', args, true) end if show[6] then p.addItem('w', 'watch', title:fullUrl('action=watch'), 'Watch', args, true) end p.brackets('left', ' &#93;', args, div) if args.collapsible then div :done() :tag('div') :css('font-size', '114%') :css('margin', args.mini and '0 4em' or '0 7em') :cssText(args.fontstyle) :wikitext(args[1]) end return tostring(div:done()) end function p.navbar(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return p._navbar(getArgs(frame)) end return p 04f3b81927127526bd5d8bda44128b559fc97d0d Module:No globals 828 37 89 88 2018-05-21T20:36:06Z Wizzup 4 1 revision imported Scribunto text/plain local mt = getmetatable(_G) or {} function mt.__index (t, k) if k ~= 'arg' then error('Tried to read nil global ' .. tostring(k), 2) end return nil end function mt.__newindex(t, k, v) if k ~= 'arg' then error('Tried to write global ' .. tostring(k), 2) end rawset(t, k, v) end setmetatable(_G, mt) 8ce3969f7d53b08bd00dabe4cc9780bc6afd412a Module:Parameter names example 828 38 91 90 2018-05-21T20:36:07Z Wizzup 4 1 revision imported Scribunto text/plain -- This module implements {{parameter names example}}. local p = {} local function makeParam(s) local lb = '&#123;' local rb = '&#125;' return lb:rep(3) .. s .. rb:rep(3) end local function italicize(s) return "''" .. s .. "''" end local function plain(s) return s end function p._main(args, frame) -- Find how we want to format the arguments to the template. local formatFunc if args._display == 'italics' or args._display == 'italic' then formatFunc = italicize elseif args._display == 'plain' then formatFunc = plain else formatFunc = makeParam end -- Build the table of template arguments. local targs = {} for k, v in pairs(args) do if type(k) == 'number' then targs[v] = formatFunc(v) elseif not k:find('^_') then targs[k] = v end end -- Find the template name. local template if args._template then template = args._template else local currentTitle = mw.title.getCurrentTitle() if currentTitle.prefixedText:find('/sandbox$') then template = currentTitle.prefixedText else template = currentTitle.basePageTitle.prefixedText end end -- Call the template with the arguments. frame = frame or mw.getCurrentFrame() local success, result = pcall( frame.expandTemplate, frame, {title = template, args = targs} ) if success then return result else return '' end end function p.main(frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Parameter names example' }) return p._main(args, frame) end return p 391f002bab27f87b76adcc1e33439496d080e6ab Module:Protection banner 828 39 93 92 2018-05-21T20:36:07Z Wizzup 4 1 revision imported Scribunto text/plain -- This module implements {{pp-meta}} and its daughter templates such as -- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}. -- Initialise necessary modules. require('Module:No globals') local makeFileLink = require('Module:File link')._main local effectiveProtectionLevel = require('Module:Effective protection level')._main local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main local yesno = require('Module:Yesno') -- Lazily initialise modules and objects we don't always need. local getArgs, makeMessageBox, lang -- Set constants. local CONFIG_MODULE = 'Module:Protection banner/config' -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function makeCategoryLink(cat, sort) if cat then return string.format( '[[%s:%s|%s]]', mw.site.namespaces[14].name, cat, sort ) end end -- Validation function for the expiry and the protection date local function validateDate(dateString, dateType) if not lang then lang = mw.language.getContentLanguage() end local success, result = pcall(lang.formatDate, lang, 'U', dateString) if success then result = tonumber(result) if result then return result end end error(string.format( 'invalid %s: %s', dateType, tostring(dateString) ), 4) end local function makeFullUrl(page, query, display) return string.format( '[%s %s]', tostring(mw.uri.fullUrl(page, query)), display ) end -- Given a directed graph formatted as node -> table of direct successors, -- get a table of all nodes reachable from a given node (though always -- including the given node). local function getReachableNodes(graph, start) local toWalk, retval = {[start] = true}, {} while true do -- Can't use pairs() since we're adding and removing things as we're iterating local k = next(toWalk) -- This always gets the "first" key if k == nil then return retval end toWalk[k] = nil retval[k] = true for _,v in ipairs(graph[k]) do if not retval[v] then toWalk[v] = true end end end end -------------------------------------------------------------------------------- -- Protection class -------------------------------------------------------------------------------- local Protection = {} Protection.__index = Protection Protection.supportedActions = { edit = true, move = true, autoreview = true, upload = true } Protection.bannerConfigFields = { 'text', 'explanation', 'tooltip', 'alt', 'link', 'image' } function Protection.new(args, cfg, title) local obj = {} obj._cfg = cfg obj.title = title or mw.title.getCurrentTitle() -- Set action if not args.action then obj.action = 'edit' elseif Protection.supportedActions[args.action] then obj.action = args.action else error(string.format( 'invalid action: %s', tostring(args.action) ), 3) end -- Set level obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title) if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then -- Users need to be autoconfirmed to move pages anyway, so treat -- semi-move-protected pages as unprotected. obj.level = '*' end -- Set expiry local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title) if effectiveExpiry == 'infinity' then obj.expiry = 'indef' elseif effectiveExpiry ~= 'unknown' then obj.expiry = validateDate(effectiveExpiry, 'expiry date') end -- Set reason if args[1] then obj.reason = mw.ustring.lower(args[1]) if obj.reason:find('|') then error('reasons cannot contain the pipe character ("|")', 3) end end -- Set protection date if args.date then obj.protectionDate = validateDate(args.date, 'protection date') end -- Set banner config do obj.bannerConfig = {} local configTables = {} if cfg.banners[obj.action] then configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason] end if cfg.defaultBanners[obj.action] then configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level] configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default end configTables[#configTables + 1] = cfg.masterBanner for i, field in ipairs(Protection.bannerConfigFields) do for j, t in ipairs(configTables) do if t[field] then obj.bannerConfig[field] = t[field] break end end end end return setmetatable(obj, Protection) end function Protection:isProtected() return self.level ~= '*' end function Protection:isTemporary() return type(self.expiry) == 'number' end function Protection:makeProtectionCategory() local cfg = self._cfg local title = self.title -- Exit if the page is not protected. if not self:isProtected() then return '' end -- Get the expiry key fragment. local expiryFragment if self.expiry == 'indef' then expiryFragment = self.expiry elseif type(self.expiry) == 'number' then expiryFragment = 'temp' end -- Get the namespace key fragment. local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace] if not namespaceFragment and title.namespace % 2 == 1 then namespaceFragment = 'talk' end -- Define the order that key fragments are tested in. This is done with an -- array of tables containing the value to be tested, along with its -- position in the cfg.protectionCategories table. local order = { {val = expiryFragment, keypos = 1}, {val = namespaceFragment, keypos = 2}, {val = self.reason, keypos = 3}, {val = self.level, keypos = 4}, {val = self.action, keypos = 5} } --[[ -- The old protection templates used an ad-hoc protection category system, -- with some templates prioritising namespaces in their categories, and -- others prioritising the protection reason. To emulate this in this module -- we use the config table cfg.reasonsWithNamespacePriority to set the -- reasons for which namespaces have priority over protection reason. -- If we are dealing with one of those reasons, move the namespace table to -- the end of the order table, i.e. give it highest priority. If not, the -- reason should have highest priority, so move that to the end of the table -- instead. --]] table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3)) --[[ -- Define the attempt order. Inactive subtables (subtables with nil "value" -- fields) are moved to the end, where they will later be given the key -- "all". This is to cut down on the number of table lookups in -- cfg.protectionCategories, which grows exponentially with the number of -- non-nil keys. We keep track of the number of active subtables with the -- noActive parameter. --]] local noActive, attemptOrder do local active, inactive = {}, {} for i, t in ipairs(order) do if t.val then active[#active + 1] = t else inactive[#inactive + 1] = t end end noActive = #active attemptOrder = active for i, t in ipairs(inactive) do attemptOrder[#attemptOrder + 1] = t end end --[[ -- Check increasingly generic key combinations until we find a match. If a -- specific category exists for the combination of key fragments we are -- given, that match will be found first. If not, we keep trying different -- key fragment combinations until we match using the key -- "all-all-all-all-all". -- -- To generate the keys, we index the key subtables using a binary matrix -- with indexes i and j. j is only calculated up to the number of active -- subtables. For example, if there were three active subtables, the matrix -- would look like this, with 0 corresponding to the key fragment "all", and -- 1 corresponding to other key fragments. -- -- j 1 2 3 -- i -- 1 1 1 1 -- 2 0 1 1 -- 3 1 0 1 -- 4 0 0 1 -- 5 1 1 0 -- 6 0 1 0 -- 7 1 0 0 -- 8 0 0 0 -- -- Values of j higher than the number of active subtables are set -- to the string "all". -- -- A key for cfg.protectionCategories is constructed for each value of i. -- The position of the value in the key is determined by the keypos field in -- each subtable. --]] local cats = cfg.protectionCategories for i = 1, 2^noActive do local key = {} for j, t in ipairs(attemptOrder) do if j > noActive then key[t.keypos] = 'all' else local quotient = i / 2 ^ (j - 1) quotient = math.ceil(quotient) if quotient % 2 == 1 then key[t.keypos] = t.val else key[t.keypos] = 'all' end end end key = table.concat(key, '|') local attempt = cats[key] if attempt then return makeCategoryLink(attempt, title.text) end end return '' end function Protection:isIncorrect() local expiry = self.expiry return not self:isProtected() or type(expiry) == 'number' and expiry < os.time() end function Protection:isTemplateProtectedNonTemplate() local action, namespace = self.action, self.title.namespace return self.level == 'templateeditor' and ( (action ~= 'edit' and action ~= 'move') or (namespace ~= 10 and namespace ~= 828) ) end function Protection:makeCategoryLinks() local msg = self._cfg.msg local ret = { self:makeProtectionCategory() } if self:isIncorrect() then ret[#ret + 1] = makeCategoryLink( msg['tracking-category-incorrect'], self.title.text ) end if self:isTemplateProtectedNonTemplate() then ret[#ret + 1] = makeCategoryLink( msg['tracking-category-template'], self.title.text ) end return table.concat(ret) end -------------------------------------------------------------------------------- -- Blurb class -------------------------------------------------------------------------------- local Blurb = {} Blurb.__index = Blurb Blurb.bannerTextFields = { text = true, explanation = true, tooltip = true, alt = true, link = true } function Blurb.new(protectionObj, args, cfg) return setmetatable({ _cfg = cfg, _protectionObj = protectionObj, _args = args }, Blurb) end -- Private methods -- function Blurb:_formatDate(num) -- Formats a Unix timestamp into dd Month, YYYY format. lang = lang or mw.language.getContentLanguage() local success, date = pcall( lang.formatDate, lang, self._cfg.msg['expiry-date-format'] or 'j F Y', '@' .. tostring(num) ) if success then return date end end function Blurb:_getExpandedMessage(msgKey) return self:_substituteParameters(self._cfg.msg[msgKey]) end function Blurb:_substituteParameters(msg) if not self._params then local parameterFuncs = {} parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter parameterFuncs.EDITREQUEST = self._makeEditRequestParameter parameterFuncs.EXPIRY = self._makeExpiryParameter parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter parameterFuncs.IMAGELINK = self._makeImageLinkParameter parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter parameterFuncs.PAGETYPE = self._makePagetypeParameter parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter parameterFuncs.TALKPAGE = self._makeTalkPageParameter parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter parameterFuncs.VANDAL = self._makeVandalTemplateParameter self._params = setmetatable({}, { __index = function (t, k) local param if parameterFuncs[k] then param = parameterFuncs[k](self) end param = param or '' t[k] = param return param end }) end msg = msg:gsub('${(%u+)}', self._params) return msg end function Blurb:_makeCurrentVersionParameter() -- A link to the page history or the move log, depending on the kind of -- protection. local pagename = self._protectionObj.title.prefixedText if self._protectionObj.action == 'move' then -- We need the move log link. return makeFullUrl( 'Special:Log', {type = 'move', page = pagename}, self:_getExpandedMessage('current-version-move-display') ) else -- We need the history link. return makeFullUrl( pagename, {action = 'history'}, self:_getExpandedMessage('current-version-edit-display') ) end end function Blurb:_makeEditRequestParameter() local mEditRequest = require('Module:Submit an edit request') local action = self._protectionObj.action local level = self._protectionObj.level -- Get the edit request type. local requestType if action == 'edit' then if level == 'autoconfirmed' then requestType = 'semi' elseif level == 'extendedconfirmed' then requestType = 'extended' elseif level == 'templateeditor' then requestType = 'template' end end requestType = requestType or 'full' -- Get the display value. local display = self:_getExpandedMessage('edit-request-display') return mEditRequest._link{type = requestType, display = display} end function Blurb:_makeExpiryParameter() local expiry = self._protectionObj.expiry if type(expiry) == 'number' then return self:_formatDate(expiry) else return expiry end end function Blurb:_makeExplanationBlurbParameter() -- Cover special cases first. if self._protectionObj.title.namespace == 8 then -- MediaWiki namespace return self:_getExpandedMessage('explanation-blurb-nounprotect') end -- Get explanation blurb table keys local action = self._protectionObj.action local level = self._protectionObj.level local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject' -- Find the message in the explanation blurb table and substitute any -- parameters. local explanations = self._cfg.explanationBlurbs local msg if explanations[action][level] and explanations[action][level][talkKey] then msg = explanations[action][level][talkKey] elseif explanations[action][level] and explanations[action][level].default then msg = explanations[action][level].default elseif explanations[action].default and explanations[action].default[talkKey] then msg = explanations[action].default[talkKey] elseif explanations[action].default and explanations[action].default.default then msg = explanations[action].default.default else error(string.format( 'could not find explanation blurb for action "%s", level "%s" and talk key "%s"', action, level, talkKey ), 8) end return self:_substituteParameters(msg) end function Blurb:_makeImageLinkParameter() local imageLinks = self._cfg.imageLinks local action = self._protectionObj.action local level = self._protectionObj.level local msg if imageLinks[action][level] then msg = imageLinks[action][level] elseif imageLinks[action].default then msg = imageLinks[action].default else msg = imageLinks.edit.default end return self:_substituteParameters(msg) end function Blurb:_makeIntroBlurbParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('intro-blurb-expiry') else return self:_getExpandedMessage('intro-blurb-noexpiry') end end function Blurb:_makeIntroFragmentParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('intro-fragment-expiry') else return self:_getExpandedMessage('intro-fragment-noexpiry') end end function Blurb:_makePagetypeParameter() local pagetypes = self._cfg.pagetypes return pagetypes[self._protectionObj.title.namespace] or pagetypes.default or error('no default pagetype defined', 8) end function Blurb:_makeProtectionBlurbParameter() local protectionBlurbs = self._cfg.protectionBlurbs local action = self._protectionObj.action local level = self._protectionObj.level local msg if protectionBlurbs[action][level] then msg = protectionBlurbs[action][level] elseif protectionBlurbs[action].default then msg = protectionBlurbs[action].default elseif protectionBlurbs.edit.default then msg = protectionBlurbs.edit.default else error('no protection blurb defined for protectionBlurbs.edit.default', 8) end return self:_substituteParameters(msg) end function Blurb:_makeProtectionDateParameter() local protectionDate = self._protectionObj.protectionDate if type(protectionDate) == 'number' then return self:_formatDate(protectionDate) else return protectionDate end end function Blurb:_makeProtectionLevelParameter() local protectionLevels = self._cfg.protectionLevels local action = self._protectionObj.action local level = self._protectionObj.level local msg if protectionLevels[action][level] then msg = protectionLevels[action][level] elseif protectionLevels[action].default then msg = protectionLevels[action].default elseif protectionLevels.edit.default then msg = protectionLevels.edit.default else error('no protection level defined for protectionLevels.edit.default', 8) end return self:_substituteParameters(msg) end function Blurb:_makeProtectionLogParameter() local pagename = self._protectionObj.title.prefixedText if self._protectionObj.action == 'autoreview' then -- We need the pending changes log. return makeFullUrl( 'Special:Log', {type = 'stable', page = pagename}, self:_getExpandedMessage('pc-log-display') ) else -- We need the protection log. return makeFullUrl( 'Special:Log', {type = 'protect', page = pagename}, self:_getExpandedMessage('protection-log-display') ) end end function Blurb:_makeTalkPageParameter() return string.format( '[[%s:%s#%s|%s]]', mw.site.namespaces[self._protectionObj.title.namespace].talk.name, self._protectionObj.title.text, self._args.section or 'top', self:_getExpandedMessage('talk-page-link-display') ) end function Blurb:_makeTooltipBlurbParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('tooltip-blurb-expiry') else return self:_getExpandedMessage('tooltip-blurb-noexpiry') end end function Blurb:_makeTooltipFragmentParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('tooltip-fragment-expiry') else return self:_getExpandedMessage('tooltip-fragment-noexpiry') end end function Blurb:_makeVandalTemplateParameter() return require('Module:Vandal-m')._main{ self._args.user or self._protectionObj.title.baseText } end -- Public methods -- function Blurb:makeBannerText(key) -- Validate input. if not key or not Blurb.bannerTextFields[key] then error(string.format( '"%s" is not a valid banner config field', tostring(key) ), 2) end -- Generate the text. local msg = self._protectionObj.bannerConfig[key] if type(msg) == 'string' then return self:_substituteParameters(msg) elseif type(msg) == 'function' then msg = msg(self._protectionObj, self._args) if type(msg) ~= 'string' then error(string.format( 'bad output from banner config function with key "%s"' .. ' (expected string, got %s)', tostring(key), type(msg) ), 4) end return self:_substituteParameters(msg) end end -------------------------------------------------------------------------------- -- BannerTemplate class -------------------------------------------------------------------------------- local BannerTemplate = {} BannerTemplate.__index = BannerTemplate function BannerTemplate.new(protectionObj, cfg) local obj = {} obj._cfg = cfg -- Set the image filename. local imageFilename = protectionObj.bannerConfig.image if imageFilename then obj._imageFilename = imageFilename else -- If an image filename isn't specified explicitly in the banner config, -- generate it from the protection status and the namespace. local action = protectionObj.action local level = protectionObj.level local namespace = protectionObj.title.namespace local reason = protectionObj.reason -- Deal with special cases first. if ( namespace == 10 or namespace == 828 or reason and obj._cfg.indefImageReasons[reason] ) and action == 'edit' and level == 'sysop' and not protectionObj:isTemporary() then -- Fully protected modules and templates get the special red "indef" -- padlock. obj._imageFilename = obj._cfg.msg['image-filename-indef'] else -- Deal with regular protection types. local images = obj._cfg.images if images[action] then if images[action][level] then obj._imageFilename = images[action][level] elseif images[action].default then obj._imageFilename = images[action].default end end end end return setmetatable(obj, BannerTemplate) end function BannerTemplate:renderImage() local filename = self._imageFilename or self._cfg.msg['image-filename-default'] or 'Transparent.gif' return makeFileLink{ file = filename, size = (self.imageWidth or 20) .. 'px', alt = self._imageAlt, link = self._imageLink, caption = self.imageCaption } end -------------------------------------------------------------------------------- -- Banner class -------------------------------------------------------------------------------- local Banner = setmetatable({}, BannerTemplate) Banner.__index = Banner function Banner.new(protectionObj, blurbObj, cfg) local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb. obj.imageWidth = 40 obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip. obj._reasonText = blurbObj:makeBannerText('text') obj._explanationText = blurbObj:makeBannerText('explanation') obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing. return setmetatable(obj, Banner) end function Banner:__tostring() -- Renders the banner. makeMessageBox = makeMessageBox or require('Module:Message box').main local reasonText = self._reasonText or error('no reason text set', 2) local explanationText = self._explanationText local mbargs = { page = self._page, type = 'protection', image = self:renderImage(), text = string.format( "'''%s'''%s", reasonText, explanationText and '<br />' .. explanationText or '' ) } return makeMessageBox('mbox', mbargs) end -------------------------------------------------------------------------------- -- Padlock class -------------------------------------------------------------------------------- local Padlock = setmetatable({}, BannerTemplate) Padlock.__index = Padlock function Padlock.new(protectionObj, blurbObj, cfg) local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb. obj.imageWidth = 20 obj.imageCaption = blurbObj:makeBannerText('tooltip') obj._imageAlt = blurbObj:makeBannerText('alt') obj._imageLink = blurbObj:makeBannerText('link') obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action] or cfg.padlockIndicatorNames.default or 'pp-default' return setmetatable(obj, Padlock) end function Padlock:__tostring() local frame = mw.getCurrentFrame() -- The nowiki tag helps prevent whitespace at the top of articles. return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{ name = 'indicator', args = {name = self._indicatorName}, content = self:renderImage() } end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p = {} function p._exportClasses() -- This is used for testing purposes. return { Protection = Protection, Blurb = Blurb, BannerTemplate = BannerTemplate, Banner = Banner, Padlock = Padlock, } end function p._main(args, cfg, title) args = args or {} cfg = cfg or require(CONFIG_MODULE) local protectionObj = Protection.new(args, cfg, title) local ret = {} -- If a page's edit protection is equally or more restrictive than its -- protection from some other action, then don't bother displaying anything -- for the other action (except categories). if protectionObj.action == 'edit' or args.demolevel or not getReachableNodes( cfg.hierarchy, protectionObj.level )[effectiveProtectionLevel('edit', protectionObj.title)] then -- Initialise the blurb object local blurbObj = Blurb.new(protectionObj, args, cfg) -- Render the banner if protectionObj:isProtected() then ret[#ret + 1] = tostring( (yesno(args.small) and Padlock or Banner) .new(protectionObj, blurbObj, cfg) ) end end -- Render the categories if yesno(args.category) ~= false then ret[#ret + 1] = protectionObj:makeCategoryLinks() end return table.concat(ret) end function p.main(frame, cfg) cfg = cfg or require(CONFIG_MODULE) -- Find default args, if any. local parent = frame.getParent and frame:getParent() local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')] -- Find user args, and use the parent frame if we are being called from a -- wrapper template. getArgs = getArgs or require('Module:Arguments').getArgs local userArgs = getArgs(frame, { parentOnly = defaultArgs, frameOnly = not defaultArgs }) -- Build the args table. User-specified args overwrite default args. local args = {} for k, v in pairs(defaultArgs or {}) do args[k] = v end for k, v in pairs(userArgs) do args[k] = v end return p._main(args, cfg) end return p 9d0a8a59e09f1bb6f641e6d0f7e27b3f3686cc6e Module:Protection banner/config 828 40 95 94 2018-05-21T20:36:08Z Wizzup 4 1 revision imported Scribunto text/plain -- This module provides configuration data for [[Module:Protection banner]]. return { -------------------------------------------------------------------------------- -- -- BANNER DATA -- -------------------------------------------------------------------------------- --[[ -- Banner data consists of six fields: -- * text - the main protection text that appears at the top of protection -- banners. -- * explanation - the text that appears below the main protection text, used -- to explain the details of the protection. -- * tooltip - the tooltip text you see when you move the mouse over a small -- padlock icon. -- * link - the page that the small padlock icon links to. -- * alt - the alt text for the small padlock icon. This is also used as tooltip -- text for the large protection banners. -- * image - the padlock image used in both protection banners and small padlock -- icons. -- -- The module checks in three separate tables to find a value for each field. -- First it checks the banners table, which has values specific to the reason -- for the page being protected. Then the module checks the defaultBanners -- table, which has values specific to each protection level. Finally, the -- module checks the masterBanner table, which holds data for protection -- templates to use if no data has been found in the previous two tables. -- -- The values in the banner data can take parameters. These are specified -- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name -- enclosed in curly braces). -- -- Available parameters: -- -- ${CURRENTVERSION} - a link to the page history or the move log, with the -- display message "current-version-edit-display" or -- "current-version-move-display". -- -- ${EDITREQUEST} - a link to create an edit request for the current page. -- -- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes -- on the talk page; you may submit a request to ask an administrator to make -- an edit if it is minor or supported by consensus." -- -- ${IMAGELINK} - a link to set the image to, depending on the protection -- action and protection level. -- -- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry -- is set. E.g. "Editing of this page by new or unregistered users is currently -- disabled until dd Month YYYY." -- -- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation -- so that it can be used in run-on sentences. -- -- ${PAGETYPE} - the type of the page, e.g. "article" or "template". -- Defined in the cfg.pagetypes table. -- -- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g. -- "Editing of this page by new or unregistered users is currently disabled" -- -- ${PROTECTIONDATE} - the protection date, if it has been supplied to the -- template. -- -- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or -- "semi-protected". -- -- ${PROTECTIONLOG} - a link to the protection log or the pending changes log, -- depending on the protection action. -- -- ${TALKPAGE} - a link to the talk page. If a section is specified, links -- straight to that talk page section. -- -- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to -- create a blurb like "This template is semi-protected", or "This article is -- move-protected until DD Month YYYY". -- -- ${VANDAL} - links for the specified username (or the root page name) -- using Module:Vandal-m. -- -- Functions -- -- For advanced users, it is possible to use Lua functions instead of strings -- in the banner config tables. Using functions gives flexibility that is not -- possible just by using parameters. Functions take two arguments, the -- protection object and the template arguments, and they must output a string. -- -- For example: -- -- text = function (protectionObj, args) -- if protectionObj.level == 'autoconfirmed' then -- return 'foo' -- else -- return 'bar' -- end -- end -- -- Some protection object properties and methods that may be useful: -- protectionObj.action - the protection action -- protectionObj.level - the protection level -- protectionObj.reason - the protection reason -- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set -- to indefinite, and the protection time in unix time if temporary. -- protectionObj.protectionDate - the protection date in unix time, or nil if -- unspecified. -- protectionObj.bannerConfig - the banner config found by the module. Beware -- of editing the config field used by the function, as it could create an -- infinite loop. -- protectionObj:isProtected - returns a boolean showing whether the page is -- protected. -- protectionObj:isTemporary - returns a boolean showing whether the expiry is -- temporary. -- protectionObj:isIncorrect - returns a boolean showing whether the protection -- template is incorrect. --]] -- The master banner data, used if no values have been found in banners or -- defaultBanners. masterBanner = { text = '${INTROBLURB}', explanation = '${EXPLANATIONBLURB}', tooltip = '${TOOLTIPBLURB}', link = '${IMAGELINK}', alt = 'Page ${PROTECTIONLEVEL}' }, -- The default banner data. This holds banner data for different protection -- levels. -- *required* - this table needs edit, move, autoreview and upload subtables. defaultBanners = { edit = {}, move = {}, autoreview = { autoconfirmed = { alt = 'Page protected with pending changes level 1', tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users', image = 'Padlock-silver-light.svg' }, default = { alt = 'Page protected with pending changes level 2', tooltip = 'All edits by users who are not reviewers or administrators are' .. ' subject to review prior to becoming visible to unregistered users', image = 'Padlock-orange.svg' } }, upload = {} }, -- The banner data. This holds banner data for different protection reasons. -- In fact, the reasons specified in this table control which reasons are -- valid inputs to the first positional parameter. -- -- There is also a non-standard "description" field that can be used for items -- in this table. This is a description of the protection reason for use in the -- module documentation. -- -- *required* - this table needs edit, move, autoreview and upload subtables. banners = { edit = { blp = { description = 'For pages protected to promote compliance with the' .. ' [[Wikipedia:Biographies of living persons' .. '|biographies of living persons]] policy', text = '${INTROFRAGMENT} to promote compliance with' .. ' [[Wikipedia:Biographies of living persons' .. "|Wikipedia's&nbsp;policy on&nbsp;the&nbsp;biographies" .. ' of&nbsp;living&nbsp;people]].', tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on' .. ' biographies of living people', }, dmca = { description = 'For pages protected by the Wikimedia Foundation' .. ' due to [[Digital Millennium Copyright Act]] takedown requests', explanation = function (protectionObj, args) local ret = 'Pursuant to a rights owner notice under the Digital' .. ' Millennium Copyright Act (DMCA) regarding some content' .. ' in this article, the Wikimedia Foundation acted under' .. ' applicable law and took down and restricted the content' .. ' in question.' if args.notice then ret = ret .. ' A copy of the received notice can be found here: ' .. args.notice .. '.' end ret = ret .. ' For more information, including websites discussing' .. ' how to file a counter-notice, please see' .. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}." .. "'''Do not remove this template from the article until the" .. " restrictions are withdrawn'''." return ret end, image = 'Padlock-black.svg', }, dispute = { description = 'For pages protected due to editing disputes', text = function (protectionObj, args) -- Find the value of "disputes". local display = 'disputes' local disputes if args.section then disputes = string.format( '[[%s:%s#%s|%s]]', mw.site.namespaces[protectionObj.title.namespace].talk.name, protectionObj.title.text, args.section, display ) else disputes = display end -- Make the blurb, depending on the expiry. local msg if type(protectionObj.expiry) == 'number' then msg = '${INTROFRAGMENT} or until editing %s have been resolved.' else msg = '${INTROFRAGMENT} until editing %s have been resolved.' end return string.format(msg, disputes) end, explanation = "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}', tooltip = '${TOOLTIPFRAGMENT} due to editing disputes', }, ecp = { description = 'For articles in topic areas authorized by' .. ' [[Wikipedia:Arbitration Committee|ArbCom]] or' .. ' meets the criteria for community use', tooltip = 'This ${PAGETYPE} is extended-confirmed protected', alt = 'Extended-protected ${PAGETYPE}', }, mainpage = { description = 'For pages protected for being displayed on the [[Main Page]]', text = 'This file is currently' .. ' [[Wikipedia:This page is protected|protected]] from' .. ' editing because it is currently or will soon be displayed' .. ' on the [[Main Page]].', explanation = 'Images on the Main Page are protected due to their high' .. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.' .. '<br /><span style="font-size:90%;">' .. "'''Administrators:''' Once this image is definitely off the Main Page," .. ' please unprotect this file, or reduce to semi-protection,' .. ' as appropriate.</span>', }, office = { description = 'For pages protected by the Wikimedia Foundation', text = function (protectionObj, args) local ret = 'This ${PAGETYPE} is currently under the' .. ' scrutiny of the' .. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]' .. ' and is protected.' if protectionObj.protectionDate then ret = ret .. ' It has been protected since ${PROTECTIONDATE}.' end return ret end, explanation = "If you can edit this page, please discuss all changes and" .. " additions on the ${TALKPAGE} first. '''Do not remove protection from this" .. " page unless you are authorized by the Wikimedia Foundation to do" .. " so.'''", image = 'Padlock-black.svg', }, reset = { description = 'For pages protected by the Wikimedia Foundation and' .. ' "reset" to a bare-bones version', text = 'This ${PAGETYPE} is currently under the' .. ' scrutiny of the' .. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]' .. ' and is protected.', explanation = function (protectionObj, args) local ret = '' if protectionObj.protectionDate then ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was' else ret = ret .. 'This ${PAGETYPE} has been' end ret = ret .. ' reduced to a' .. ' simplified, "bare bones" version so that it may be completely' .. ' rewritten to ensure it meets the policies of' .. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].' .. ' Standard Wikipedia policies will apply to its rewriting—which' .. ' will eventually be open to all editors—and will be strictly' .. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while' .. ' it is being rebuilt.\n\n' .. 'Any insertion of material directly from' .. ' pre-protection revisions of the ${PAGETYPE} will be removed, as' .. ' will any material added to the ${PAGETYPE} that is not properly' .. ' sourced. The associated talk page(s) were also cleared on the' .. " same date.\n\n" .. "If you can edit this page, please discuss all changes and" .. " additions on the ${TALKPAGE} first. '''Do not override" .. " this action, and do not remove protection from this page," .. " unless you are authorized by the Wikimedia Foundation" .. " to do so. No editor may remove this notice.'''" return ret end, image = 'Padlock-black.svg', }, sock = { description = 'For pages protected due to' .. ' [[Wikipedia:Sock puppetry|sock puppetry]]', text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of' .. ' [[Wikipedia:Blocking policy|blocked]] or' .. ' [[Wikipedia:Banning policy|banned users]]' .. ' from editing it.', tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from' .. ' editing it', }, template = { description = 'For [[Wikipedia:High-risk templates|high-risk]]' .. ' templates and Lua modules', text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},' .. ' as it is [[Wikipedia:High-risk templates|high-risk]].', explanation = 'Please discuss any changes on the ${TALKPAGE}; you may' .. ' ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] or' .. ' [[Wikipedia:Template editor|template editor]] to make an edit if' .. ' it is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by' .. ' [[Wikipedia:Consensus|consensus]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.', tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}' .. ' to prevent vandalism', alt = 'Permanently protected ${PAGETYPE}', }, usertalk = { description = 'For pages protected against disruptive edits by a' .. ' particular user', text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,' .. ' such as abusing the' .. ' &#123;&#123;[[Template:unblock|unblock]]&#125;&#125; template.', explanation = 'If you cannot edit this user talk page and you need to' .. ' make a change or leave a message, you can' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for edits to a protected page' .. '|request an edit]],' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]],' .. ' [[Special:Userlogin|log in]],' .. ' or [[Special:UserLogin/signup|create an account]].', }, vandalism = { description = 'For pages protected against' .. ' [[Wikipedia:Vandalism|vandalism]]', text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].', explanation = function (protectionObj, args) local ret = '' if protectionObj.level == 'sysop' then ret = ret .. "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ' end return ret .. '${EXPLANATIONBLURB}' end, tooltip = '${TOOLTIPFRAGMENT} due to vandalism', } }, move = { dispute = { description = 'For pages protected against page moves due to' .. ' disputes over the page title', explanation = "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}', image = 'Padlock-olive.svg' }, vandalism = { description = 'For pages protected against' .. ' [[Wikipedia:Vandalism#Page-move vandalism' .. ' |page-move vandalism]]' } }, autoreview = {}, upload = {} }, -------------------------------------------------------------------------------- -- -- GENERAL DATA TABLES -- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Protection blurbs -------------------------------------------------------------------------------- -- This table produces the protection blurbs available with the -- ${PROTECTIONBLURB} parameter. It is sorted by protection action and -- protection level, and is checked by the module in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. protectionBlurbs = { edit = { default = 'This ${PAGETYPE} is currently [[Help:Protection|' .. 'protected]] from editing', autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access' .. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered' .. ' users|unregistered]] users is currently [[Help:Protection|disabled]]', extendedconfirmed = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} as a result of' .. ' [[Wikipedia:Arbitration Committee|ArbCom]] enforcement or meets the' .. ' [[Wikipedia:Protection policy#extended|criteria for community use]]', }, move = { default = 'This ${PAGETYPE} is currently [[Help:Protection|protected]]' .. ' from [[Help:Moving a page|page moves]]' }, autoreview = { autoconfirmed = 'All edits made to this ${PAGETYPE} by' .. ' [[Wikipedia:User access levels#New users|new]] or' .. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]' .. ' users are currently' .. ' [[Wikipedia:Pending changes|subject to review]]', default = 'All edits made to this ${PAGETYPE} by users who are not' .. ' [[Wikipedia:Reviewing|reviewers]] or' .. ' [[Wikipedia:Administrators|administrators]] are currently' .. ' [[Wikipedia:Pending changes|subject to review]]' }, upload = { default = 'Uploading new versions of this ${PAGETYPE} is currently disabled' } }, -------------------------------------------------------------------------------- -- Explanation blurbs -------------------------------------------------------------------------------- -- This table produces the explanation blurbs available with the -- ${EXPLANATIONBLURB} parameter. It is sorted by protection action, -- protection level, and whether the page is a talk page or not. If the page is -- a talk page it will have a talk key of "talk"; otherwise it will have a talk -- key of "subject". The table is checked in the following order: -- 1. page's protection action, page's protection level, page's talk key -- 2. page's protection action, page's protection level, default talk key -- 3. page's protection action, default protection level, page's talk key -- 4. page's protection action, default protection level, default talk key -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. explanationBlurbs = { edit = { autoconfirmed = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details. If you' .. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can' .. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details. If you' .. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].', }, extendedconfirmed = { default = 'Extended confirmed protection prevents edits from all IP editors' .. ' and registered users with fewer than 30 days tenure and 500 edits.' .. ' The [[Wikipedia:Protection policy#extended|policy on community use]]' .. ' specifies that extended confirmed protection can be applied to combat' .. ' disruption, given that semi-protection has proven to be ineffective.' .. ' Please discuss any changes on the ${TALKPAGE}; you may' .. ' ${EDITREQUEST} to ask for unconversial changes supported by' .. ' [[Wikipedia:Consensus|consensus]].' }, default = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Please discuss any changes on the ${TALKPAGE}; you' .. ' may ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] to make an edit if it' .. ' is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by [[Wikipedia:Consensus' .. '|consensus]]. You may also [[Wikipedia:Requests for' .. ' page protection#Current requests for reduction in protection level' .. '|request]] that this page be unprotected.', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' You may [[Wikipedia:Requests for page' .. ' protection#Current requests for edits to a protected page|request an' .. ' edit]] to this page, or [[Wikipedia:Requests for' .. ' page protection#Current requests for reduction in protection level' .. '|ask]] for it to be unprotected.' } }, move = { default = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but cannot be moved' .. ' until unprotected. Please discuss any suggested moves on the' .. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but cannot be moved' .. ' until unprotected. Please discuss any suggested moves at' .. ' [[Wikipedia:Requested moves]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.' } }, autoreview = { default = { reviewer = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Edits to this ${PAGETYPE} will not be visible to readers' .. ' until they are accepted by a reviewer or an administrator.' .. ' To avoid the need for your edits to be reviewed, you may' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]]. Experienced editors may also' .. ' request the [[Wikipedia:Reviewing|reviewer user right]].', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Edits to this ${PAGETYPE} by new and unregistered users' .. ' will not be visible to readers until they are accepted by' .. ' a reviewer. To avoid the need for your edits to be' .. ' reviewed, you may' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].' }, }, upload = { default = { default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but new versions of the file' .. ' cannot be uploaded until it is unprotected. You can' .. ' request that a new version be uploaded by using a' .. ' [[Wikipedia:Edit requests|protected edit request]], or you' .. ' can [[Wikipedia:Requests for page protection|request]]' .. ' that the file be unprotected.' } } }, -------------------------------------------------------------------------------- -- Protection levels -------------------------------------------------------------------------------- -- This table provides the data for the ${PROTECTIONLEVEL} parameter, which -- produces a short label for different protection levels. It is sorted by -- protection action and protection level, and is checked in the following -- order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. protectionLevels = { edit = { default = 'protected', templateeditor = 'template-protected', extendedconfirmed = 'extended-protected', autoconfirmed = 'semi-protected', }, move = { default = 'move-protected' }, autoreview = { }, upload = { default = 'upload-protected' } }, -------------------------------------------------------------------------------- -- Images -------------------------------------------------------------------------------- -- This table lists different padlock images for each protection action and -- protection level. It is used if an image is not specified in any of the -- banner data tables, and if the page does not satisfy the conditions for using -- the ['image-filename-indef'] image. It is checked in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level images = { edit = { default = 'Padlock.svg', templateeditor = 'Padlock-pink.svg', extendedconfirmed = 'Padlock-blue.svg', autoconfirmed = 'Padlock-silver.svg' }, move = { default = 'Padlock-olive.svg', }, autoreview = { autoconfirmed = 'Padlock-silver-light.svg', default = 'Padlock-orange.svg' }, upload = { default = 'Padlock-purple.svg' } }, -- Pages with a reason specified in this table will show the special "indef" -- padlock, defined in the 'image-filename-indef' message, if no expiry is set. indefImageReasons = { template = true }, -------------------------------------------------------------------------------- -- Image links -------------------------------------------------------------------------------- -- This table provides the data for the ${IMAGELINK} parameter, which gets -- the image link for small padlock icons based on the page's protection action -- and protection level. It is checked in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. imageLinks = { edit = { default = 'Wikipedia:Protection policy#full', templateeditor = 'Wikipedia:Protection policy#template', extendedconfirmed = 'Wikipedia:Protection policy#extended', autoconfirmed = 'Wikipedia:Protection policy#semi' }, move = { default = 'Wikipedia:Protection policy#move' }, autoreview = { autoconfirmed = 'Wikipedia:Protection policy#pc1', reviewer = 'Wikipedia:Protection policy#pc2' }, upload = { default = 'Wikipedia:Protection policy#upload' } }, -------------------------------------------------------------------------------- -- Padlock indicator names -------------------------------------------------------------------------------- -- This table provides the "name" attribute for the <indicator> extension tag -- with which small padlock icons are generated. All indicator tags on a page -- are displayed in alphabetical order based on this attribute, and with -- indicator tags with duplicate names, the last tag on the page wins. -- The attribute is chosen based on the protection action; table keys must be a -- protection action name or the string "default". padlockIndicatorNames = { autoreview = 'pp-autoreview', default = 'pp-default' }, -------------------------------------------------------------------------------- -- Protection categories -------------------------------------------------------------------------------- --[[ -- The protection categories are stored in the protectionCategories table. -- Keys to this table are made up of the following strings: -- -- 1. the expiry date -- 2. the namespace -- 3. the protection reason (e.g. "dispute" or "vandalism") -- 4. the protection level (e.g. "sysop" or "autoconfirmed") -- 5. the action (e.g. "edit" or "move") -- -- When the module looks up a category in the table, first it will will check to -- see a key exists that corresponds to all five parameters. For example, a -- user page semi-protected from vandalism for two weeks would have the key -- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module -- changes the first part of the key to "all" and checks the table again. It -- keeps checking increasingly generic key combinations until it finds the -- field, or until it reaches the key "all-all-all-all-all". -- -- The module uses a binary matrix to determine the order in which to search. -- This is best demonstrated by a table. In this table, the "0" values -- represent "all", and the "1" values represent the original data (e.g. -- "indef" or "file" or "vandalism"). -- -- expiry namespace reason level action -- order -- 1 1 1 1 1 1 -- 2 0 1 1 1 1 -- 3 1 0 1 1 1 -- 4 0 0 1 1 1 -- 5 1 1 0 1 1 -- 6 0 1 0 1 1 -- 7 1 0 0 1 1 -- 8 0 0 0 1 1 -- 9 1 1 1 0 1 -- 10 0 1 1 0 1 -- 11 1 0 1 0 1 -- 12 0 0 1 0 1 -- 13 1 1 0 0 1 -- 14 0 1 0 0 1 -- 15 1 0 0 0 1 -- 16 0 0 0 0 1 -- 17 1 1 1 1 0 -- 18 0 1 1 1 0 -- 19 1 0 1 1 0 -- 20 0 0 1 1 0 -- 21 1 1 0 1 0 -- 22 0 1 0 1 0 -- 23 1 0 0 1 0 -- 24 0 0 0 1 0 -- 25 1 1 1 0 0 -- 26 0 1 1 0 0 -- 27 1 0 1 0 0 -- 28 0 0 1 0 0 -- 29 1 1 0 0 0 -- 30 0 1 0 0 0 -- 31 1 0 0 0 0 -- 32 0 0 0 0 0 -- -- In this scheme the action has the highest priority, as it is the last -- to change, and the expiry has the least priority, as it changes the most. -- The priorities of the expiry, the protection level and the action are -- fixed, but the priorities of the reason and the namespace can be swapped -- through the use of the cfg.bannerDataNamespaceHasPriority table. --]] -- If the reason specified to the template is listed in this table, -- namespace data will take priority over reason data in the protectionCategories -- table. reasonsWithNamespacePriority = { vandalism = true, }, -- The string to use as a namespace key for the protectionCategories table for each -- namespace number. categoryNamespaceKeys = { [ 2] = 'user', [ 3] = 'user', [ 4] = 'project', [ 6] = 'file', [ 8] = 'mediawiki', [ 10] = 'template', [ 12] = 'project', [ 14] = 'category', [100] = 'portal', [828] = 'module', }, protectionCategories = { ['all|all|all|all|all'] = 'Wikipedia fully protected pages', ['all|all|office|all|all'] = 'Wikipedia Office-protected pages', ['all|all|reset|all|all'] = 'Wikipedia Office-protected pages', ['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages', ['all|all|mainpage|all|all'] = 'Wikipedia fully-protected main page files', ['all|all|all|extendedconfirmed|all'] = 'Wikipedia pages under 30-500 editing restriction', ['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia pages under 30-500 editing restriction', ['all|template|all|all|edit'] = 'Wikipedia fully-protected templates', ['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages', ['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages', ['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people', ['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people', ['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute', ['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users', ['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism', ['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories', ['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files', ['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals', ['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages', ['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages', ['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates', ['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages', ['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates', ['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people', ['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people', ['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute', ['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users', ['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism', ['all|category|all|sysop|edit'] = 'Wikipedia protected categories', ['all|file|all|sysop|edit'] = 'Wikipedia fully-protected files', ['all|project|all|sysop|edit'] = 'Wikipedia fully-protected project pages', ['all|talk|all|sysop|edit'] = 'Wikipedia fully-protected talk pages', ['all|template|all|sysop|edit'] = 'Wikipedia fully-protected templates', ['all|user|all|sysop|edit'] = 'Wikipedia protected user and user talk pages', ['all|module|all|all|edit'] = 'Wikipedia fully-protected modules', ['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules', ['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules', ['all|all|all|sysop|move'] = 'Wikipedia move-protected pages', ['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages', ['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute', ['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism', ['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals', ['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals', ['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages', ['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages', ['all|template|all|sysop|move'] = 'Wikipedia move-protected templates', ['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages', ['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages', ['all|all|all|reviewer|autoreview'] = 'Wikipedia pending changes protected pages (level 2)', ['all|file|all|all|upload'] = 'Wikipedia upload-protected files', }, -------------------------------------------------------------------------------- -- Expiry category config -------------------------------------------------------------------------------- -- This table configures the expiry category behaviour for each protection -- action. -- * If set to true, setting that action will always categorise the page if -- an expiry parameter is not set. -- * If set to false, setting that action will never categorise the page. -- * If set to nil, the module will categorise the page if: -- 1) an expiry parameter is not set, and -- 2) a reason is provided, and -- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck -- table. expiryCheckActions = { edit = nil, move = false, autoreview = true, upload = false }, reasonsWithoutExpiryCheck = { blp = true, template = true, }, -------------------------------------------------------------------------------- -- Pagetypes -------------------------------------------------------------------------------- -- This table produces the page types available with the ${PAGETYPE} parameter. -- Keys are namespace numbers, or the string "default" for the default value. pagetypes = { [0] = 'article', [6] = 'file', [10] = 'template', [14] = 'category', [828] = 'module', default = 'page' }, -------------------------------------------------------------------------------- -- Strings marking indefinite protection -------------------------------------------------------------------------------- -- This table contains values passed to the expiry parameter that mean the page -- is protected indefinitely. indefStrings = { ['indef'] = true, ['indefinite'] = true, ['indefinitely'] = true, ['infinite'] = true, }, -------------------------------------------------------------------------------- -- Group hierarchy -------------------------------------------------------------------------------- -- This table maps each group to all groups that have a superset of the original -- group's page editing permissions. hierarchy = { sysop = {}, reviewer = {'sysop'}, filemover = {'sysop'}, templateeditor = {'sysop'}, extendedconfirmed = {'sysop'}, autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'}, user = {'autoconfirmed'}, ['*'] = {'user'} }, -------------------------------------------------------------------------------- -- Wrapper templates and their default arguments -------------------------------------------------------------------------------- -- This table contains wrapper templates used with the module, and their -- default arguments. Templates specified in this table should contain the -- following invocation, and no other template content: -- -- {{#invoke:Protection banner|main}} -- -- If other content is desired, it can be added between -- <noinclude>...</noinclude> tags. -- -- When a user calls one of these wrapper templates, they will use the -- default arguments automatically. However, users can override any of the -- arguments. wrappers = { ['Template:Pp'] = {}, ['Template:Pp-30-500'] = {'ecp'}, ['Template:Pp-blp'] = {'blp'}, -- we don't need Template:Pp-create ['Template:Pp-dispute'] = {'dispute'}, ['Template:Pp-main-page'] = {'mainpage'}, ['Template:Pp-move'] = {action = 'move'}, ['Template:Pp-move-dispute'] = {'dispute', action = 'move'}, -- we don't need Template:Pp-move-indef ['Template:Pp-move-vandalism'] = {'vandalism', action = 'move'}, ['Template:Pp-office'] = {'office'}, ['Template:Pp-office-dmca'] = {'dmca'}, ['Template:Pp-pc1'] = {action = 'autoreview', small = true}, ['Template:Pp-pc2'] = {action = 'autoreview', small = true}, ['Template:Pp-reset'] = {'reset'}, ['Template:Pp-semi-indef'] = {small = true}, ['Template:Pp-sock'] = {'sock'}, ['Template:Pp-template'] = {'template', small = true}, ['Template:Pp-upload'] = {action = 'upload'}, ['Template:Pp-usertalk'] = {'usertalk'}, ['Template:Pp-vandalism'] = {'vandalism'}, }, -------------------------------------------------------------------------------- -- -- MESSAGES -- -------------------------------------------------------------------------------- msg = { -------------------------------------------------------------------------------- -- Intro blurb and intro fragment -------------------------------------------------------------------------------- -- These messages specify what is produced by the ${INTROBLURB} and -- ${INTROFRAGMENT} parameters. If the protection is temporary they use the -- intro-blurb-expiry or intro-fragment-expiry, and if not they use -- intro-blurb-noexpiry or intro-fragment-noexpiry. -- It is possible to use banner parameters in these messages. ['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.', ['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.', ['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},', ['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}', -------------------------------------------------------------------------------- -- Tooltip blurb -------------------------------------------------------------------------------- -- These messages specify what is produced by the ${TOOLTIPBLURB} parameter. -- If the protection is temporary the tooltip-blurb-expiry message is used, and -- if not the tooltip-blurb-noexpiry message is used. -- It is possible to use banner parameters in these messages. ['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.', ['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.', ['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},', ['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}', -------------------------------------------------------------------------------- -- Special explanation blurb -------------------------------------------------------------------------------- -- An explanation blurb for pages that cannot be unprotected, e.g. for pages -- in the MediaWiki namespace. -- It is possible to use banner parameters in this message. ['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Please discuss any changes on the ${TALKPAGE}; you' .. ' may ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] to make an edit if it' .. ' is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by [[Wikipedia:Consensus' .. '|consensus]].', -------------------------------------------------------------------------------- -- Protection log display values -------------------------------------------------------------------------------- -- These messages determine the display values for the protection log link -- or the pending changes log link produced by the ${PROTECTIONLOG} parameter. -- It is possible to use banner parameters in these messages. ['protection-log-display'] = 'protection log', ['pc-log-display'] = 'pending changes log', -------------------------------------------------------------------------------- -- Current version display values -------------------------------------------------------------------------------- -- These messages determine the display values for the page history link -- or the move log link produced by the ${CURRENTVERSION} parameter. -- It is possible to use banner parameters in these messages. ['current-version-move-display'] = 'current title', ['current-version-edit-display'] = 'current version', -------------------------------------------------------------------------------- -- Talk page -------------------------------------------------------------------------------- -- This message determines the display value of the talk page link produced -- with the ${TALKPAGE} parameter. -- It is possible to use banner parameters in this message. ['talk-page-link-display'] = 'talk page', -------------------------------------------------------------------------------- -- Edit requests -------------------------------------------------------------------------------- -- This message determines the display value of the edit request link produced -- with the ${EDITREQUEST} parameter. -- It is possible to use banner parameters in this message. ['edit-request-display'] = 'submit an edit request', -------------------------------------------------------------------------------- -- Expiry date format -------------------------------------------------------------------------------- -- This is the format for the blurb expiry date. It should be valid input for -- the first parameter of the #time parser function. ['expiry-date-format'] = 'F j, Y', -------------------------------------------------------------------------------- -- Tracking categories -------------------------------------------------------------------------------- -- These messages determine which tracking categories the module outputs. ['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates', ['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules', -------------------------------------------------------------------------------- -- Images -------------------------------------------------------------------------------- -- These are images that are not defined by their protection action and protection level. ['image-filename-indef'] = 'Padlock.svg', ['image-filename-default'] = 'Transparent.gif', -------------------------------------------------------------------------------- -- End messages -------------------------------------------------------------------------------- } -------------------------------------------------------------------------------- -- End configuration -------------------------------------------------------------------------------- } 95d00c81f0f92f7a46edfc4f74dcdb1b4b3346db Module:Sidebar 828 41 97 96 2018-05-21T20:36:08Z Wizzup 4 1 revision imported Scribunto text/plain -- -- This module implements {{Sidebar}} -- require('Module:No globals') local p = {} local getArgs = require('Module:Arguments').getArgs local navbar = require('Module:Navbar')._navbar local function trimAndAddAutomaticNewline(s) -- For compatibility with the original {{sidebar with collapsible lists}} -- implementation, which passed some parameters through {{#if}} to trim -- their whitespace. This also triggered the automatic newline behavior. -- ([[meta:Help:Newlines and spaces#Automatic newline]]) s = mw.ustring.gsub(s, "^%s*(.-)%s*$", "%1") if mw.ustring.find(s, '^[#*:;]') or mw.ustring.find(s, '^{|') then return '\n' .. s else return s end end local function hasSubgroup(s) if mw.ustring.find(s, 'vertical%-navbox%-subgroup') then return true else return false end end function p.sidebar(frame, args) if not args then args = getArgs(frame) end local root = mw.html.create() local child = args.child and mw.text.trim(args.child) == 'yes' root = root:tag('table') if not child then root :addClass('vertical-navbox') :addClass(args.wraplinks ~= 'true' and 'nowraplinks' or nil) :addClass(args.bodyclass or args.class) :css('float', args.float or 'right') :css('clear', (args.float == 'none' and 'both') or args.float or 'right') :css('width', args.width or '22.0em') :css('margin', args.float == 'left' and '0 1.0em 1.0em 0' or '0 0 1.0em 1.0em') :css('background', '#f9f9f9') :css('border', '1px solid #aaa') :css('padding', '0.2em') :css('border-spacing', '0.4em 0') :css('text-align', 'center') :css('line-height', '1.4em') :css('font-size', '88%') :cssText(args.bodystyle or args.style) if args.outertitle then root :tag('caption') :addClass(args.outertitleclass) :css('padding-bottom', '0.2em') :css('font-size', '125%') :css('line-height', '1.2em') :css('font-weight', 'bold') :cssText(args.outertitlestyle) :wikitext(args.outertitle) end if args.topimage then local imageCell = root:tag('tr'):tag('td') imageCell :addClass(args.topimageclass) :css('padding', '0.4em 0') :cssText(args.topimagestyle) :wikitext(args.topimage) if args.topcaption then imageCell :tag('div') :css('padding-top', '0.2em') :css('line-height', '1.2em') :cssText(args.topcaptionstyle) :wikitext(args.topcaption) end end if args.pretitle then root :tag('tr') :tag('td') :addClass(args.pretitleclass) :cssText(args.basestyle) :css('padding-top', args.topimage and '0.2em' or '0.4em') :css('line-height', '1.2em') :cssText(args.pretitlestyle) :wikitext(args.pretitle) end else root :addClass('vertical-navbox-subgroup') :css('width', '100%') :css('margin', '0px') :css('border-spacing', '0px') :addClass(args.bodyclass or args.class) :cssText(args.bodystyle or args.style) end if args.title then if child then root :wikitext(args.title) else root :tag('tr') :tag('th') :addClass(args.titleclass) :cssText(args.basestyle) :css('padding', '0.2em 0.4em 0.2em') :css('padding-top', args.pretitle and 0) :css('font-size', '145%') :css('line-height', '1.2em') :cssText(args.titlestyle) :wikitext(args.title) end end if args.image then local imageCell = root:tag('tr'):tag('td') imageCell :addClass(args.imageclass) :css('padding', '0.2em 0 0.4em') :cssText(args.imagestyle) :wikitext(args.image) if args.caption then imageCell :tag('div') :css('padding-top', '0.2em') :css('line-height', '1.2em') :cssText(args.captionstyle) :wikitext(args.caption) end end if args.above then root :tag('tr') :tag('td') :addClass(args.aboveclass) :css('padding', '0.3em 0.4em 0.3em') :css('font-weight', 'bold') :cssText(args.abovestyle) :newline() -- newline required for bullet-points to work :wikitext(args.above) end local rowNums = {} for k, v in pairs(args) do k = '' .. k local num = k:match('^heading(%d+)$') or k:match('^content(%d+)$') if num then table.insert(rowNums, tonumber(num)) end end table.sort(rowNums) -- remove duplicates from the list (e.g. 3 will be duplicated if both heading3 and content3 are specified) for i = #rowNums, 1, -1 do if rowNums[i] == rowNums[i - 1] then table.remove(rowNums, i) end end for i, num in ipairs(rowNums) do local heading = args['heading' .. num] if heading then root :tag('tr') :tag('th') :addClass(args.headingclass) :css('padding', '0.1em') :cssText(args.basestyle) :cssText(args.headingstyle) :cssText(args['heading' .. num .. 'style']) :newline() :wikitext(heading) end local content = args['content' .. num] if content then root :tag('tr') :tag('td') :addClass(args.contentclass) :css('padding', hasSubgroup(content) and '0.1em 0 0.2em' or '0 0.1em 0.4em') :cssText(args.contentstyle) :cssText(args['content' .. num .. 'style']) :newline() :wikitext(content) :done() :newline() -- Without a linebreak after the </td>, a nested list like "* {{hlist| ...}}" doesn't parse correctly. end end if args.below then root :tag('tr') :tag('td') :addClass(args.belowclass) :css('padding', '0.3em 0.4em 0.3em') :css('font-weight', 'bold') :cssText(args.belowstyle) :newline() :wikitext(args.below) end if not child then local navbarArg = args.navbar or args.tnavbar if navbarArg ~= 'none' and navbarArg ~= 'off' and (args.name or frame:getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Sidebar') then root :tag('tr') :tag('td') :css('text-align', 'right') :css('font-size', '115%') :cssText(args.navbarstyle or args.tnavbarstyle) :wikitext(navbar{ args.name, mini = 1, fontstyle = args.navbarfontstyle or args.tnavbarfontstyle }) end end return tostring(root) .. (child and '[[Category:Pages using sidebar with the child parameter]]' or '') end function p.collapsible(frame) local args = getArgs(frame) args.abovestyle = 'border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;' .. (args.abovestyle or '') args.belowstyle = 'border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;' .. (args.belowstyle or '') args.navbarstyle = 'padding-top: 0.6em;' .. (args.navbarstyle or args.tnavbarstyle or '') if not args.name and frame:getParent():getTitle():gsub('/sandbox$', '') == 'Template:Sidebar with collapsible lists' then args.navbar = 'none' end local contentArgs = {} for k, v in pairs(args) do local num = string.match(k, '^list(%d+)$') if num then local expand = args.expanded and (args.expanded == 'all' or args.expanded == args['list' .. num .. 'name']) local row = mw.html.create('div') row :addClass('NavFrame') :addClass((not expand) and 'collapsed' or nil) :css('border', 'none') :css('padding', 0) :cssText(args.listframestyle) :cssText(args['list' .. num .. 'framestyle']) :tag('div') :addClass('NavHead') :addClass(args.listtitleclass) :css('font-size', '105%') :css('background', 'transparent') :css('text-align', 'left') :cssText(args.basestyle) :cssText(args.listtitlestyle) :cssText(args['list' .. num .. 'titlestyle']) :wikitext(trimAndAddAutomaticNewline(args['list' .. num .. 'title'] or 'List')) :done() :tag('div') :addClass('NavContent') :addClass(args.listclass) :addClass(args['list' .. num .. 'class']) :css('font-size', '105%') :css('padding', '0.2em 0 0.4em') :css('text-align', 'center') :cssText(args.liststyle) :cssText(args['list' .. num .. 'style']) :wikitext(trimAndAddAutomaticNewline(args['list' .. num])) contentArgs['content' .. num] = tostring(row) end end for k, v in pairs(contentArgs) do args[k] = v end return p.sidebar(frame, args) end return p c9e636a93bc3b868bb53b389630e9e30e73f9c66 Module:String 828 42 99 98 2018-05-21T20:36:08Z Wizzup 4 1 revision imported Scribunto text/plain --[[ This module is intended to provide access to basic string functions. Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace. Global options ignore_errors: If set to 'true' or 1, any error condition will result in an empty string being returned rather than an error message. error_category: If an error occurs, specifies the name of a category to include with the error message. The default category is [Category:Errors reported by Module String]. no_category: If set to 'true' or 1, no category will be added if an error is generated. Unit tests for this module are available at Module:String/tests. ]] local str = {} --[[ len This function returns the length of the target string. Usage: {{#invoke:String|len|target_string|}} OR {{#invoke:String|len|s=target_string}} Parameters s: The string whose length to report If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. ]] function str.len( frame ) local new_args = str._getParameters( frame.args, {'s'} ); local s = new_args['s'] or ''; return mw.ustring.len( s ) end --[[ sub This function returns a substring of the target string at specified indices. Usage: {{#invoke:String|sub|target_string|start_index|end_index}} OR {{#invoke:String|sub|s=target_string|i=start_index|j=end_index}} Parameters s: The string to return a subset of i: The fist index of the substring to return, defaults to 1. j: The last index of the string to return, defaults to the last character. The first character of the string is assigned an index of 1. If either i or j is a negative value, it is interpreted the same as selecting a character by counting from the end of the string. Hence, a value of -1 is the same as selecting the last character of the string. If the requested indices are out of range for the given string, an error is reported. ]] function str.sub( frame ) local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } ); local s = new_args['s'] or ''; local i = tonumber( new_args['i'] ) or 1; local j = tonumber( new_args['j'] ) or -1; local len = mw.ustring.len( s ); -- Convert negatives for range checking if i < 0 then i = len + i + 1; end if j < 0 then j = len + j + 1; end if i > len or j > len or i < 1 or j < 1 then return str._error( 'String subset index out of range' ); end if j < i then return str._error( 'String subset indices out of order' ); end return mw.ustring.sub( s, i, j ) end --[[ This function implements that features of {{str sub old}} and is kept in order to maintain these older templates. ]] function str.sublength( frame ) local i = tonumber( frame.args.i ) or 0 local len = tonumber( frame.args.len ) return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) ) end --[[ match This function returns a substring from the source string that matches a specified pattern. Usage: {{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}} OR {{#invoke:String|pos|s=source_string|pattern=pattern_string|start=start_index |match=match_number|plain=plain_flag|nomatch=nomatch_output}} Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from each string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. If the match_number or start_index are out of range for the string being queried, then this function generates an error. An error is also generated if no match is found. If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] function str.match( frame ) local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} ); local s = new_args['s'] or ''; local start = tonumber( new_args['start'] ) or 1; local plain_flag = str._getBoolean( new_args['plain'] or false ); local pattern = new_args['pattern'] or ''; local match_index = math.floor( tonumber(new_args['match']) or 1 ); local nomatch = new_args['nomatch']; if s == '' then return str._error( 'Target string is empty' ); end if pattern == '' then return str._error( 'Pattern string is empty' ); end if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then return str._error( 'Requested start is out of range' ); end if match_index == 0 then return str._error( 'Match index is out of range' ); end if plain_flag then pattern = str._escapePattern( pattern ); end local result if match_index == 1 then -- Find first match is simple case result = mw.ustring.match( s, pattern, start ) else if start > 1 then s = mw.ustring.sub( s, start ); end local iterator = mw.ustring.gmatch(s, pattern); if match_index > 0 then -- Forward search for w in iterator do match_index = match_index - 1; if match_index == 0 then result = w; break; end end else -- Reverse search local result_table = {}; local count = 1; for w in iterator do result_table[count] = w; count = count + 1; end result = result_table[ count + match_index ]; end end if result == nil then if nomatch == nil then return str._error( 'Match not found' ); else return nomatch; end else return result; end end --[[ pos This function returns a single character from the target string at position pos. Usage: {{#invoke:String|pos|target_string|index_value}} OR {{#invoke:String|pos|target=target_string|pos=index_value}} Parameters target: The string to search pos: The index for the character to return If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. The first character has an index value of 1. If one requests a negative value, this function will select a character by counting backwards from the end of the string. In other words pos = -1 is the same as asking for the last character. A requested value of zero, or a value greater than the length of the string returns an error. ]] function str.pos( frame ) local new_args = str._getParameters( frame.args, {'target', 'pos'} ); local target_str = new_args['target'] or ''; local pos = tonumber( new_args['pos'] ) or 0; if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then return str._error( 'String index out of range' ); end return mw.ustring.sub( target_str, pos, pos ); end --[[ str_find This function duplicates the behavior of {{str_find}}, including all of its quirks. This is provided in order to support existing templates, but is NOT RECOMMENDED for new code and templates. New code is recommended to use the "find" function instead. Returns the first index in "source" that is a match to "target". Indexing is 1-based, and the function returns -1 if the "target" string is not present in "source". Important Note: If the "target" string is empty / missing, this function returns a value of "1", which is generally unexpected behavior, and must be accounted for separatetly. ]] function str.str_find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target'} ); local source_str = new_args['source'] or ''; local target_str = new_args['target'] or ''; if target_str == '' then return 1; end local start = mw.ustring.find( source_str, target_str, 1, true ) if start == nil then start = -1 end return start end --[[ find This function allows one to search for a target string or pattern within another string. Usage: {{#invoke:String|find|source_str|target_string|start_index|plain_flag}} OR {{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}} Parameters source: The string to search target: The string or pattern to find within source start: The index within the source string to start the search, defaults to 1 plain: Boolean flag indicating that target should be understood as plain text and not as a Lua style regular expression, defaults to true If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. This function returns the first index >= "start" where "target" can be found within "source". Indices are 1-based. If "target" is not found, then this function returns 0. If either "source" or "target" are missing / empty, this function also returns 0. This function should be safe for UTF-8 strings. ]] function str.find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } ); local source_str = new_args['source'] or ''; local pattern = new_args['target'] or ''; local start_pos = tonumber(new_args['start']) or 1; local plain = new_args['plain'] or true; if source_str == '' or pattern == '' then return 0; end plain = str._getBoolean( plain ); local start = mw.ustring.find( source_str, pattern, start_pos, plain ) if start == nil then start = 0 end return start end --[[ replace This function allows one to replace a target string or pattern within another string. Usage: {{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}} OR {{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string| count=replacement_count|plain=plain_flag}} Parameters source: The string to search pattern: The string or pattern to find within source replace: The replacement text count: The number of occurences to replace, defaults to all. plain: Boolean flag indicating that pattern should be understood as plain text and not as a Lua style regular expression, defaults to true ]] function str.replace( frame ) local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } ); local source_str = new_args['source'] or ''; local pattern = new_args['pattern'] or ''; local replace = new_args['replace'] or ''; local count = tonumber( new_args['count'] ); local plain = new_args['plain'] or true; if source_str == '' or pattern == '' then return source_str; end plain = str._getBoolean( plain ); if plain then pattern = str._escapePattern( pattern ); replace = mw.ustring.gsub( replace, "%%", "%%%%" ); --Only need to escape replacement sequences. end local result; if count ~= nil then result = mw.ustring.gsub( source_str, pattern, replace, count ); else result = mw.ustring.gsub( source_str, pattern, replace ); end return result; end --[[ simple function to pipe string.rep to templates. ]] function str.rep( frame ) local repetitions = tonumber( frame.args[2] ) if not repetitions then return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' ) end return string.rep( frame.args[1] or '', repetitions ) end --[[ Helper function that populates the argument list given that user may need to use a mix of named and unnamed parameters. This is relevant because named parameters are not identical to unnamed parameters due to string trimming, and when dealing with strings we sometimes want to either preserve or remove that whitespace depending on the application. ]] function str._getParameters( frame_args, arg_list ) local new_args = {}; local index = 1; local value; for i,arg in ipairs( arg_list ) do value = frame_args[arg] if value == nil then value = frame_args[index]; index = index + 1; end new_args[arg] = value; end return new_args; end --[[ Helper function to handle error messages. ]] function str._error( error_str ) local frame = mw.getCurrentFrame(); local error_category = frame.args.error_category or 'Errors reported by Module String'; local ignore_errors = frame.args.ignore_errors or false; local no_category = frame.args.no_category or false; if str._getBoolean(ignore_errors) then return ''; end local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>'; if error_category ~= '' and not str._getBoolean( no_category ) then error_str = '[[Category:' .. error_category .. ']]' .. error_str; end return error_str; end --[[ Helper Function to interpret boolean strings ]] function str._getBoolean( boolean_str ) local boolean_value; if type( boolean_str ) == 'string' then boolean_str = boolean_str:lower(); if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0' or boolean_str == '' then boolean_value = false; else boolean_value = true; end elseif type( boolean_str ) == 'boolean' then boolean_value = boolean_str; else error( 'No boolean value found' ); end return boolean_value end --[[ Helper function that escapes all pattern characters so that they will be treated as plain text. ]] function str._escapePattern( pattern_str ) return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); end return str b3f731f2026437e7ef7e3f22bb9d823788125c39 Module:TableTools 828 43 101 100 2018-05-21T20:36:09Z Wizzup 4 1 revision imported Scribunto text/plain --[[ ------------------------------------------------------------------------------------ -- TableTools -- -- -- -- This module includes a number of functions for dealing with Lua tables. -- -- It is a meta-module, meant to be called from other Lua modules, and should -- -- not be called directly from #invoke. -- ------------------------------------------------------------------------------------ --]] local libraryUtil = require('libraryUtil') local p = {} -- Define often-used variables and functions. local floor = math.floor local infinity = math.huge local checkType = libraryUtil.checkType --[[ ------------------------------------------------------------------------------------ -- isPositiveInteger -- -- This function returns true if the given value is a positive integer, and false -- if not. Although it doesn't operate on tables, it is included here as it is -- useful for determining whether a given table key is in the array part or the -- hash part of a table. ------------------------------------------------------------------------------------ --]] function p.isPositiveInteger(v) if type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity then return true else return false end end --[[ ------------------------------------------------------------------------------------ -- isNan -- -- This function returns true if the given number is a NaN value, and false -- if not. Although it doesn't operate on tables, it is included here as it is -- useful for determining whether a value can be a valid table key. Lua will -- generate an error if a NaN is used as a table key. ------------------------------------------------------------------------------------ --]] function p.isNan(v) if type(v) == 'number' and tostring(v) == '-nan' then return true else return false end end --[[ ------------------------------------------------------------------------------------ -- shallowClone -- -- This returns a clone of a table. The value returned is a new table, but all -- subtables and functions are shared. Metamethods are respected, but the returned -- table will have no metatable of its own. ------------------------------------------------------------------------------------ --]] function p.shallowClone(t) local ret = {} for k, v in pairs(t) do ret[k] = v end return ret end --[[ ------------------------------------------------------------------------------------ -- removeDuplicates -- -- This removes duplicate values from an array. Non-positive-integer keys are -- ignored. The earliest value is kept, and all subsequent duplicate values are -- removed, but otherwise the array order is unchanged. ------------------------------------------------------------------------------------ --]] function p.removeDuplicates(t) checkType('removeDuplicates', 1, t, 'table') local isNan = p.isNan local ret, exists = {}, {} for i, v in ipairs(t) do if isNan(v) then -- NaNs can't be table keys, and they are also unique, so we don't need to check existence. ret[#ret + 1] = v else if not exists[v] then ret[#ret + 1] = v exists[v] = true end end end return ret end --[[ ------------------------------------------------------------------------------------ -- numKeys -- -- This takes a table and returns an array containing the numbers of any numerical -- keys that have non-nil values, sorted in numerical order. ------------------------------------------------------------------------------------ --]] function p.numKeys(t) checkType('numKeys', 1, t, 'table') local isPositiveInteger = p.isPositiveInteger local nums = {} for k, v in pairs(t) do if isPositiveInteger(k) then nums[#nums + 1] = k end end table.sort(nums) return nums end --[[ ------------------------------------------------------------------------------------ -- affixNums -- -- This takes a table and returns an array containing the numbers of keys with the -- specified prefix and suffix. For example, for the table -- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will -- return {1, 3, 6}. ------------------------------------------------------------------------------------ --]] function p.affixNums(t, prefix, suffix) checkType('affixNums', 1, t, 'table') checkType('affixNums', 2, prefix, 'string', true) checkType('affixNums', 3, suffix, 'string', true) local function cleanPattern(s) -- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') return s end prefix = prefix or '' suffix = suffix or '' prefix = cleanPattern(prefix) suffix = cleanPattern(suffix) local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$' local nums = {} for k, v in pairs(t) do if type(k) == 'string' then local num = mw.ustring.match(k, pattern) if num then nums[#nums + 1] = tonumber(num) end end end table.sort(nums) return nums end --[[ ------------------------------------------------------------------------------------ -- numData -- -- Given a table with keys like ("foo1", "bar1", "foo2", "baz2"), returns a table -- of subtables in the format -- { [1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'} } -- Keys that don't end with an integer are stored in a subtable named "other". -- The compress option compresses the table so that it can be iterated over with -- ipairs. ------------------------------------------------------------------------------------ --]] function p.numData(t, compress) checkType('numData', 1, t, 'table') checkType('numData', 2, compress, 'boolean', true) local ret = {} for k, v in pairs(t) do local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$') if num then num = tonumber(num) local subtable = ret[num] or {} if prefix == '' then -- Positional parameters match the blank string; put them at the start of the subtable instead. prefix = 1 end subtable[prefix] = v ret[num] = subtable else local subtable = ret.other or {} subtable[k] = v ret.other = subtable end end if compress then local other = ret.other ret = p.compressSparseArray(ret) ret.other = other end return ret end --[[ ------------------------------------------------------------------------------------ -- compressSparseArray -- -- This takes an array with one or more nil values, and removes the nil values -- while preserving the order, so that the array can be safely traversed with -- ipairs. ------------------------------------------------------------------------------------ --]] function p.compressSparseArray(t) checkType('compressSparseArray', 1, t, 'table') local ret = {} local nums = p.numKeys(t) for _, num in ipairs(nums) do ret[#ret + 1] = t[num] end return ret end --[[ ------------------------------------------------------------------------------------ -- sparseIpairs -- -- This is an iterator for sparse arrays. It can be used like ipairs, but can -- handle nil values. ------------------------------------------------------------------------------------ --]] function p.sparseIpairs(t) checkType('sparseIpairs', 1, t, 'table') local nums = p.numKeys(t) local i = 0 local lim = #nums return function () i = i + 1 if i <= lim then local key = nums[i] return key, t[key] else return nil, nil end end end --[[ ------------------------------------------------------------------------------------ -- size -- -- This returns the size of a key/value pair table. It will also work on arrays, -- but for arrays it is more efficient to use the # operator. ------------------------------------------------------------------------------------ --]] function p.size(t) checkType('size', 1, t, 'table') local i = 0 for k in pairs(t) do i = i + 1 end return i end return p ab9df0eb210b08945b9eed86435858f6e931a79a Module:Yesno 828 44 103 102 2018-05-21T20:36:09Z Wizzup 4 1 revision imported Scribunto text/plain -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you -- should replace "val:lower()" with "mw.ustring.lower(val)" in the -- following line. val = type(val) == 'string' and val:lower() or val if val == nil then return nil elseif val == true or val == 'yes' or val == 'y' or val == 'true' or val == 't' or val == 'on' or tonumber(val) == 1 then return true elseif val == false or val == 'no' or val == 'n' or val == 'false' or val == 'f' or val == 'off' or tonumber(val) == 0 then return false else return default end end f767643e7d12126d020d88d662a3dd057817b9dc Main Page 0 1 104 20 2018-05-21T20:40:08Z Sicelo 5 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = &nbsp; == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Known Issues and workarounds === === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needing testing == &nbsp; == Packages needing building == &nbsp; == Packages needing porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 661b3faddbc369bd4731a7f6ce337cd84e6b3cc8 120 104 2018-05-21T21:26:44Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = See [[Category:Device]] == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Known Issues and workarounds === === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needing testing == &nbsp; == Packages needing building == &nbsp; == Packages needing porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 89ef3b9a54a007daddbbbd943d3819736a24540f 122 120 2018-05-21T21:28:52Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = See [Category:Device] == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Known Issues and workarounds === === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needing testing == &nbsp; == Packages needing building == &nbsp; == Packages needing porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 7d6a9fc489094d56b62d048a78d3df668a808b83 123 122 2018-05-21T21:31:23Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = See [[:Category:Device]] == N900 == [https://maemo-leste.github.io/pages/n900-status.html Status] === Installation === ''' U-Boot from sdcard ''' ''' Boot through flasher from sdcard''' === Known Issues and workarounds === === Kernel development === Status: [https://elinux.org/N900 https://elinux.org/N900] Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip &nbsp; == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; == Generic AMD64 == &nbsp; == Allwinner A20 LIME2 == &nbsp; == Allwinner A33 Tablet == &nbsp; == Raspberry 2 or 3 == &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needing testing == &nbsp; == Packages needing building == &nbsp; == Packages needing porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] b2dee7f2483aee5c77791933d62f9ab6568044b0 Template:Infobox Device 10 45 106 105 2018-05-21T20:40:43Z Wizzup 4 1 revision imported wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = Specifications | label7 = | data7 = | header8 = | label8 = SoC | data8 = {{{soc|}}} | header9 = | label9 = DRAM | data9 = {{{dram|}}} | header10 = | label10 = NAND | data10 = {{{nand|}}} | header11 = | label11 = Power | data11 = {{{power|}}} | header12 = Features | label12 = | data12 = | header13 = | label13 = LCD | data13 = {{{lcd|}}} | header14 = | label14 = Input | data14 = {{{input|}}} | header15 = | label15 = Video | data15 = {{{video|}}} | header16 = | label16 = Audio | data16 = {{{audio|}}} | header17 = | label17 = Network | data17 = {{{network|}}} | header18 = | label18 = Storage | data18 = {{{storage|}}} | header19 = | label19 = USB (<small>Host/OTG</small>) | data19 = {{{usb|}}} | header20 = | label20 = Camera | data20 = {{{camera|}}} | header21 = | label21 = Sensors | data21 = {{{sensors|}}} | header22 = | label22 = Other | data22 = {{{other|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} }} 993003e5ee469a6119c5d643d599b7028809c79e Template:Infobox 10 4 108 23 2018-05-21T20:40:54Z Wizzup 4 1 revision imported wikitext text/x-wiki {{#invoke:Infobox|infobox}}<includeonly>{{#ifeq:{{NAMESPACE}}|Template|{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Category:Infobox templates|{{remove first word|{{SUBPAGENAME}}}}]]}}}}</includeonly><noinclude> {{documentation}} <!-- Categories go in the /doc subpage, and interwikis go in Wikidata. --> </noinclude> e6db96a81f994b02e93b537be937d443c0890566 Module:Infobox 828 31 110 77 2018-05-21T20:40:54Z Wizzup 4 1 revision imported Scribunto text/plain -- -- This module implements {{Infobox}} -- local p = {} local navbar = require('Module:Navbar')._navbar local args = {} local origArgs local root local function notempty( s ) return s and s:match( '%S' ) end local function fixChildBoxes(sval, tt) if notempty(sval) then local marker = '<span class=special_infobox_marker>' local s = sval s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1') s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker) if s:match(marker) then s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '') s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1') s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1') s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1') s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1') s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1') s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1') s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1') s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1') end if s:match(marker) then local subcells = mw.text.split(s, marker) s = '' for k = 1, #subcells do if k == 1 then s = s .. subcells[k] .. '</' .. tt .. '></tr>' elseif k == #subcells then local rowstyle = ' style="display:none"' if notempty(subcells[k]) then rowstyle = '' end s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k] elseif notempty(subcells[k]) then if (k % 2) == 0 then s = s .. subcells[k] else s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>' end end end end return s else return sval end end local function union(t1, t2) -- Returns the union of the values of two tables, as a sequence. local vals = {} for k, v in pairs(t1) do vals[v] = true end for k, v in pairs(t2) do vals[v] = true end local ret = {} for k, v in pairs(vals) do table.insert(ret, k) end return ret end local function getArgNums(prefix) -- Returns a table containing the numbers of the arguments that exist -- for the specified prefix. For example, if the prefix was 'data', and -- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}. local nums = {} for k, v in pairs(args) do local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end local function addRow(rowArgs) -- Adds a row to the infobox, with either a header cell -- or a label/data cell combination. if rowArgs.header then root :tag('tr') :addClass(rowArgs.rowclass) :cssText(rowArgs.rowstyle) :attr('id', rowArgs.rowid) :tag('th') :attr('colspan', 2) :attr('id', rowArgs.headerid) :addClass(rowArgs.class) :addClass(args.headerclass) :css('text-align', 'center') :cssText(args.headerstyle) :cssText(rowArgs.rowcellstyle) :wikitext(fixChildBoxes(rowArgs.header, 'th')) elseif rowArgs.data then local row = root:tag('tr') row:addClass(rowArgs.rowclass) row:cssText(rowArgs.rowstyle) row:attr('id', rowArgs.rowid) if rowArgs.label then row :tag('th') :attr('scope', 'row') :attr('id', rowArgs.labelid) :cssText(args.labelstyle) :cssText(rowArgs.rowcellstyle) :wikitext(rowArgs.label) :done() end local dataCell = row:tag('td') if not rowArgs.label then dataCell :attr('colspan', 2) :css('text-align', 'center') end dataCell :attr('id', rowArgs.dataid) :addClass(rowArgs.class) :cssText(rowArgs.datastyle) :cssText(rowArgs.rowcellstyle) :newline() :wikitext(fixChildBoxes(rowArgs.data, 'td')) end end local function renderTitle() if not args.title then return end root :tag('caption') :addClass(args.titleclass) :cssText(args.titlestyle) :wikitext(args.title) end local function renderAboveRow() if not args.above then return end root :tag('tr') :tag('th') :attr('colspan', 2) :addClass(args.aboveclass) :css('text-align', 'center') :css('font-size', '125%') :css('font-weight', 'bold') :cssText(args.abovestyle) :wikitext(fixChildBoxes(args.above,'th')) end local function renderBelowRow() if not args.below then return end root :tag('tr') :tag('td') :attr('colspan', '2') :addClass(args.belowclass) :css('text-align', 'center') :cssText(args.belowstyle) :newline() :wikitext(fixChildBoxes(args.below,'td')) end local function renderSubheaders() if args.subheader then args.subheader1 = args.subheader end if args.subheaderrowclass then args.subheaderrowclass1 = args.subheaderrowclass end local subheadernums = getArgNums('subheader') for k, num in ipairs(subheadernums) do addRow({ data = args['subheader' .. tostring(num)], datastyle = args.subheaderstyle or args['subheaderstyle' .. tostring(num)], class = args.subheaderclass, rowclass = args['subheaderrowclass' .. tostring(num)] }) end end local function renderImages() if args.image then args.image1 = args.image end if args.caption then args.caption1 = args.caption end local imagenums = getArgNums('image') for k, num in ipairs(imagenums) do local caption = args['caption' .. tostring(num)] local data = mw.html.create():wikitext(args['image' .. tostring(num)]) if caption then data :tag('div') :cssText(args.captionstyle) :wikitext(caption) end addRow({ data = tostring(data), datastyle = args.imagestyle, class = args.imageclass, rowclass = args['imagerowclass' .. tostring(num)] }) end end local function renderRows() -- Gets the union of the header and data argument numbers, -- and renders them all in order using addRow. local rownums = union(getArgNums('header'), getArgNums('data')) table.sort(rownums) for k, num in ipairs(rownums) do addRow({ header = args['header' .. tostring(num)], label = args['label' .. tostring(num)], data = args['data' .. tostring(num)], datastyle = args.datastyle, class = args['class' .. tostring(num)], rowclass = args['rowclass' .. tostring(num)], rowstyle = args['rowstyle' .. tostring(num)], rowcellstyle = args['rowcellstyle' .. tostring(num)], dataid = args['dataid' .. tostring(num)], labelid = args['labelid' .. tostring(num)], headerid = args['headerid' .. tostring(num)], rowid = args['rowid' .. tostring(num)] }) end end local function renderNavBar() if not args.name then return end root :tag('tr') :tag('td') :attr('colspan', '2') :css('text-align', 'right') :wikitext(navbar{ args.name, mini = 1, }) end local function renderItalicTitle() local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title']) if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'})) end end local function renderTrackingCategories() if args.decat ~= 'yes' then if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then root:wikitext('[[Category:Articles which use infobox templates with no data rows]]') end if args.child == 'yes' and args.title then root:wikitext('[[Category:Pages which use embedded infobox templates with the title parameter]]') end end end local function _infobox() -- Specify the overall layout of the infobox, with special settings -- if the infobox is used as a 'child' inside another infobox. if args.child ~= 'yes' then root = mw.html.create('table') root :addClass((args.subbox ~= 'yes') and 'infobox' or nil) :addClass(args.bodyclass) if args.subbox == 'yes' then root :css('padding', '0') :css('border', 'none') :css('margin', '-3px') :css('width', 'auto') :css('min-width', '100%') :css('font-size', '100%') :css('clear', 'none') :css('float', 'none') :css('background-color', 'transparent') else root :css('width', '22em') end root :cssText(args.bodystyle) renderTitle() renderAboveRow() else root = mw.html.create() root :wikitext(args.title) end renderSubheaders() renderImages() renderRows() renderBelowRow() renderNavBar() renderItalicTitle() renderTrackingCategories() return tostring(root) end local function preprocessSingleArg(argName) -- If the argument exists and isn't blank, add it to the argument table. -- Blank arguments are treated as nil to match the behaviour of ParserFunctions. if origArgs[argName] and origArgs[argName] ~= '' then args[argName] = origArgs[argName] end end local function preprocessArgs(prefixTable, step) -- Assign the parameters with the given prefixes to the args table, in order, in batches -- of the step size specified. This is to prevent references etc. from appearing in the -- wrong order. The prefixTable should be an array containing tables, each of which has -- two possible fields, a "prefix" string and a "depend" table. The function always parses -- parameters containing the "prefix" string, but only parses parameters in the "depend" -- table if the prefix parameter is present and non-blank. if type(prefixTable) ~= 'table' then error("Non-table value detected for the prefix table", 2) end if type(step) ~= 'number' then error("Invalid step value detected", 2) end -- Get arguments without a number suffix, and check for bad input. for i,v in ipairs(prefixTable) do if type(v) ~= 'table' or type(v.prefix) ~= "string" or (v.depend and type(v.depend) ~= 'table') then error('Invalid input detected to preprocessArgs prefix table', 2) end preprocessSingleArg(v.prefix) -- Only parse the depend parameter if the prefix parameter is present and not blank. if args[v.prefix] and v.depend then for j, dependValue in ipairs(v.depend) do if type(dependValue) ~= 'string' then error('Invalid "depend" parameter value detected in preprocessArgs') end preprocessSingleArg(dependValue) end end end -- Get arguments with number suffixes. local a = 1 -- Counter variable. local moreArgumentsExist = true while moreArgumentsExist == true do moreArgumentsExist = false for i = a, a + step - 1 do for j,v in ipairs(prefixTable) do local prefixArgName = v.prefix .. tostring(i) if origArgs[prefixArgName] then moreArgumentsExist = true -- Do another loop if any arguments are found, even blank ones. preprocessSingleArg(prefixArgName) end -- Process the depend table if the prefix argument is present and not blank, or -- we are processing "prefix1" and "prefix" is present and not blank, and -- if the depend table is present. if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then for j,dependValue in ipairs(v.depend) do local dependArgName = dependValue .. tostring(i) preprocessSingleArg(dependArgName) end end end end a = a + step end end function p.infobox(frame) -- If called via #invoke, use the args passed into the invoking template. -- Otherwise, for testing purposes, assume args are being passed directly in. if frame == mw.getCurrentFrame() then origArgs = frame:getParent().args else origArgs = frame end -- Parse the data parameters in the same order that the old {{infobox}} did, so that -- references etc. will display in the expected places. Parameters that depend on -- another parameter are only processed if that parameter is present, to avoid -- phantom references appearing in article reference lists. preprocessSingleArg('child') preprocessSingleArg('bodyclass') preprocessSingleArg('subbox') preprocessSingleArg('bodystyle') preprocessSingleArg('title') preprocessSingleArg('titleclass') preprocessSingleArg('titlestyle') preprocessSingleArg('above') preprocessSingleArg('aboveclass') preprocessSingleArg('abovestyle') preprocessArgs({ {prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}} }, 10) preprocessSingleArg('subheaderstyle') preprocessSingleArg('subheaderclass') preprocessArgs({ {prefix = 'image', depend = {'caption', 'imagerowclass'}} }, 10) preprocessSingleArg('captionstyle') preprocessSingleArg('imagestyle') preprocessSingleArg('imageclass') preprocessArgs({ {prefix = 'header'}, {prefix = 'data', depend = {'label'}}, {prefix = 'rowclass'}, {prefix = 'rowstyle'}, {prefix = 'rowcellstyle'}, {prefix = 'class'}, {prefix = 'dataid'}, {prefix = 'labelid'}, {prefix = 'headerid'}, {prefix = 'rowid'} }, 50) preprocessSingleArg('headerclass') preprocessSingleArg('headerstyle') preprocessSingleArg('labelstyle') preprocessSingleArg('datastyle') preprocessSingleArg('below') preprocessSingleArg('belowclass') preprocessSingleArg('belowstyle') preprocessSingleArg('name') args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent preprocessSingleArg('decat') return _infobox() end return p 3c0184beda9afaf0fe936d06101680d646f31874 Module:HtmlBuilder 828 46 112 111 2018-05-21T20:40:54Z Wizzup 4 1 revision imported Scribunto text/plain -- Module for building complex HTML (e.g. infoboxes, navboxes) using a fluent interface. local HtmlBuilder = {} local metatable = {} metatable.__index = function(t, key) local ret = rawget(t, key) if ret then return ret end ret = metatable[key] if type(ret) == 'function' then return function(...) return ret(t, ...) end else return ret end end metatable.__tostring = function(t) local ret = {} t._build(ret) return table.concat(ret) end metatable._build = function(t, ret) if t.tagName then table.insert(ret, '<' .. t.tagName) for i, attr in ipairs(t.attributes) do table.insert(ret, ' ' .. attr.name .. '="' .. attr.val .. '"') end if #t.styles > 0 then table.insert(ret, ' style="') for i, prop in ipairs(t.styles) do if type(prop) == 'string' then -- added with cssText() table.insert(ret, prop .. ';') else -- added with css() table.insert(ret, prop.name .. ':' .. prop.val .. ';') end end table.insert(ret, '"') end if t.selfClosing then table.insert(ret, ' /') end table.insert(ret, '>') end for i, node in ipairs(t.nodes) do if node then if type(node) == 'table' then node._build(ret) else table.insert(ret, tostring(node)) end end end if t.tagName and not t.unclosed and not t.selfClosing then table.insert(ret, '</' .. t.tagName .. '>') end end metatable.node = function(t, builder) if builder then table.insert(t.nodes, builder) end return t end metatable.wikitext = function(t, ...) local vals = {...} for i = 1, #vals do if vals[i] then table.insert(t.nodes, vals[i]) end end return t end metatable.newline = function(t) table.insert(t.nodes, '\n') return t end metatable.tag = function(t, tagName, args) args = args or {} args.parent = t local builder = HtmlBuilder.create(tagName, args) table.insert(t.nodes, builder) return builder end local function getAttr(t, name) for i, attr in ipairs(t.attributes) do if attr.name == name then return attr end end end metatable.attr = function(t, name, val) if type(val) == 'string' or type(val) == 'number' then -- if caller sets the style attribute explicitly, then replace all styles previously added with css() and cssText() if name == 'style' then t.styles = {val} return t end local attr = getAttr(t, name) if attr then attr.val = val else table.insert(t.attributes, {name = name, val = val}) end end return t end metatable.addClass = function(t, class) if class then local attr = getAttr(t, 'class') if attr then attr.val = attr.val .. ' ' .. class else t.attr('class', class) end end return t end metatable.css = function(t, name, val) if type(val) == 'string' or type(val) == 'number' then for i, prop in ipairs(t.styles) do if prop.name == name then prop.val = val return t end end table.insert(t.styles, {name = name, val = val}) end return t end metatable.cssText = function(t, css) if css then table.insert(t.styles, css) end return t end metatable.done = function(t) return t.parent or t end metatable.allDone = function(t) while t.parent do t = t.parent end return t end function HtmlBuilder.create(tagName, args) args = args or {} local builder = {} setmetatable(builder, metatable) builder.nodes = {} builder.attributes = {} builder.styles = {} builder.tagName = tagName builder.parent = args.parent builder.unclosed = args.unclosed or false builder.selfClosing = args.selfClosing or false return builder end return HtmlBuilder 5a14c9609179fbec98c7a0a7814c3793bec5a97c File:Nokia N900 - Leste pre-alpha.jpg 6 47 113 2018-05-21T21:12:22Z Wizzup 4 Just an initial picture of the N900 running Maemo Leste pre-alpha wikitext text/x-wiki Just an initial picture of the N900 running Maemo Leste pre-alpha 0eff6249c690ed199e9a2cb381423661091a38e7 Nokia N900 0 48 114 2018-05-21T21:12:44Z Wizzup 4 Create stub Infobox Device for Nokia N900 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} c426a19a3d086620cf5e966e72a1bfcd59abeff1 117 114 2018-05-21T21:21:20Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Image: http://maedevu.maemo.org/images/n900/ {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || Slave only |} 98e957e0fcaf65a754f23526f4164328e8076bd9 118 117 2018-05-21T21:25:10Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Image: http://maedevu.maemo.org/images/n900/ {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || Slave only |} [[Category:Device]] 5442fb135c5d8a2a7a9eea4b5c93d0a4d4a6ef5a 124 118 2018-05-21T21:34:19Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} Image: http://maedevu.maemo.org/images/n900/ Also see: https://elinux.org/N900 {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || Slave only |} [[Category:Device]] 505e0cb9bc4f7047a5350ea6fc5ffa2d4e2d86ed 125 124 2018-05-21T21:34:56Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} Image: http://maedevu.maemo.org/images/n900/ Also see: https://elinux.org/N900 {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || Slave only |} [[Category:Device]] 4e9ff8b9695f18a7d8a62423ec9e73605f55b778 126 125 2018-05-21T21:37:46Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 == Status == {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || Slave only |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 [[Category:Device]] 42623d18c66cd965da5c5b496a5f395d65f9d787 129 126 2018-05-21T21:42:36Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 == Status == {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || Slave only |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 [[Category:Device]] 04f03c52e284342eb0d625775626cd12bd638b0d File:Motorola Droid 4 - Leste pre-alpha.jpg 6 49 115 2018-05-21T21:14:03Z Wizzup 4 Just an initial picture of the Motorola Droid 4 running Maemo Leste pre-alpha wikitext text/x-wiki Just an initial picture of the Motorola Droid 4 running Maemo Leste pre-alpha 4a4d53d7bb91afa71f56dbe6e62c21cfa3a8fa83 Motorola Droid 4 0 50 116 2018-05-21T21:14:28Z Wizzup 4 Created page with "{{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio=..." wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} a55ac1bd2a7b6fb7ddf104c8e93681e27a4d82ac 121 116 2018-05-21T21:27:05Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} [[Category:Device]] 1d57edcb41224f2f350f33ae9d1a5f567d2ac4ad 131 121 2018-05-21T21:46:41Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} [[Category:Device]] 6bc4dbf465ea905d61f1d7056db1d0e770b0fb69 133 131 2018-05-21T21:48:49Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || OTG |} == Installation == [[Category:Device]] 89c277dd9034cbe3e9915d9b239cbdb9a029e7e8 135 133 2018-05-21T21:51:18Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || OTG |} == Installation == [[Category:Device]] da3454dc5522a3149b96f8ceb2cb505cb9a3a966 136 135 2018-05-21T21:52:18Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || OTG |} == Installation == [[Category:Device]] e05cd9752481964b20f73ca60bb3639984cdaf11 Category:Device 14 51 119 2018-05-21T21:26:08Z Wizzup 4 Created page with "This page contains a list of all the currently supported devices." wikitext text/x-wiki This page contains a list of all the currently supported devices. d274ed738d572102a3292f2147156d315f38de98 Template:Warning Box 10 52 127 2018-05-21T21:40:18Z Wizzup 4 Created page with "<center> <span style="background: #f2f2f2; border: 1px solid #d4d4d4; display: inline-block; margin-bottom: 1em; padding: 1em;"> {{{message}}} </span> </center>" wikitext text/x-wiki <center> <span style="background: #f2f2f2; border: 1px solid #d4d4d4; display: inline-block; margin-bottom: 1em; padding: 1em;"> {{{message}}} </span> </center> 797202dcae1bce001b83707e9a3d38e382150b61 Template:Stub 10 53 128 2018-05-21T21:40:39Z Wizzup 4 Created page with "{{Warning Box|message=This page or section is a [[:Category:Stubs|stub]]. Ask how you can help improve linux-exynos.org by sending an e-mail to the Mailing List|mailing list..." wikitext text/x-wiki {{Warning Box|message=This page or section is a [[:Category:Stubs|stub]]. Ask how you can help improve linux-exynos.org by sending an e-mail to the [[Mailing List|mailing list]], or by visiting [[IRC channel|#linux-exynos]], or if you are able to [{{fullurl:{{FULLPAGENAME}}|action=edit}} contribute to the current page], then you are welcome to do so.}} <includeonly>[[Category:Stubs]]</includeonly> 85a3f612c7a2c5c1311d3638d2024c596aab1a6f 130 128 2018-05-21T21:45:57Z Wizzup 4 wikitext text/x-wiki {{Warning Box|message=This page or section is a [[:Category:Stubs|stub]]. Ask how you can help improve leste.maemo.org by visiting [[IRC channel|#linux-exynos]], look at the bugtracker (https://github.com/maemo-leste/bugtracker) or if you are able to [{{fullurl:{{FULLPAGENAME}}|action=edit}} contribute to the current page], then you are welcome to do so.}} <includeonly>[[Category:Stubs]]</includeonly> 7cd186d9842f5f891ae60ad78247d17a747d752a 132 130 2018-05-21T21:47:15Z Wizzup 4 wikitext text/x-wiki {{Warning Box|message=This page or section is a [[:Category:Stubs|stub]]. Ask how you can help improve leste.maemo.org by visiting [[IRC channel|#maemo-leste]], look at the bugtracker (https://github.com/maemo-leste/bugtracker) or if you are able to [{{fullurl:{{FULLPAGENAME}}|action=edit}} contribute to the current page], then you are welcome to do so.}} <includeonly>[[Category:Stubs]]</includeonly> 866630882eb3662a86afbef46ab54ffb51523a50 IRC channel 0 54 134 2018-05-21T21:49:19Z Wizzup 4 Created page with "We are on irc.freenode.net ; channel #maemo-leste" wikitext text/x-wiki We are on irc.freenode.net ; channel #maemo-leste b0198b68c1e6be3dee9f5974e3f1f58bf1c75aaf Nokia N9 0 55 137 2018-05-21T21:52:52Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |se..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} 4b0e6d323831a1c9384983650eb5ed236810694c 141 137 2018-05-21T21:56:55Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} [[Category:Device]] 433553518db088b298e8d7f2fd8213337f24d1a6 Nokia N950 0 56 138 2018-05-21T21:53:49Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |se..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} 4b0e6d323831a1c9384983650eb5ed236810694c 140 138 2018-05-21T21:56:19Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} [[Category:Device]] 236d3ef5d8150e6078433714a26a50e90ece4c81 Raspberry Pi 2 0 57 139 2018-05-21T21:55:22Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |se..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Raspberry Pi 2 or Raspberry Pi 3. == Notes == == Status == == Installation == Images: http://maedevu.maemo.org/images/raspi2/ dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI. [[Category:Device]] 1f5d235d754dddcd08e58ebcd8ce14ec0ef85704 143 139 2018-05-22T14:51:12Z Derby 3 Corrected manufacturer wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Raspberry Pi Foundation |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Raspberry Pi 2 or Raspberry Pi 3. == Notes == == Status == == Installation == Images: http://maedevu.maemo.org/images/raspi2/ dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI. [[Category:Device]] d9e9b4fcf14a8d63dc2db65cdd4286f2f9b89b8f 144 143 2018-05-22T14:53:33Z Derby 3 Derby moved page [[Raspberry Pi]] to [[Raspberry Pi 2]]: Build is based on the Pi 2 and is not comptible with the original armv6 Pi. wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Raspberry Pi Foundation |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Raspberry Pi 2 or Raspberry Pi 3. == Notes == == Status == == Installation == Images: http://maedevu.maemo.org/images/raspi2/ dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI. [[Category:Device]] d9e9b4fcf14a8d63dc2db65cdd4286f2f9b89b8f User:Wizzup 2 58 142 2018-05-21T22:09:09Z Wizzup 4 Created page with "I want work on the following things for the wiki: * Device status overviews * Device installation instructions * A category for software packages. Something like Category:Sof..." wikitext text/x-wiki I want work on the following things for the wiki: * Device status overviews * Device installation instructions * A category for software packages. Something like Category:Software for a, say, the Internet Connectivity Daemon. Would be nice to have an overview of the features / software that we ship in a category * ... eda21a9924c5bee50b52f266f03f537699a66e75 Raspberry Pi 0 59 145 2018-05-22T14:53:34Z Derby 3 Derby moved page [[Raspberry Pi]] to [[Raspberry Pi 2]]: Build is based on the Pi 2 and is not comptible with the original armv6 Pi. wikitext text/x-wiki #REDIRECT [[Raspberry Pi 2]] 3661c9712e09ae4c5941f269d7ab359588a3dbab Raspberry Pi 2 0 57 146 144 2018-05-22T14:55:55Z Derby 3 More informative description wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Raspberry Pi Foundation |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} 32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3. == Notes == == Status == == Installation == Images: http://maedevu.maemo.org/images/raspi2/ dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI. [[Category:Device]] 40e59eb2fad0db91adfdd1112c40f158c6e93b0b Virtual Machine 0 60 147 2018-05-23T13:43:39Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VMware is known to work when you convert one of the images to the VMware format. [[Category:Device]] 1d1f849cb4e3af0559a876d13305ed9c9000182d 150 147 2018-05-23T13:51:29Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VMware is known to work when you convert one of the images to the VMware format. [[Category:Device]] fa7f2874c7ceed214e99d60044ba37adf2b4394f 176 150 2018-05-29T13:02:21Z Juest 10 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VirtualBox images is the easiest way to convert to VMware which has been reported to perform better and have good hardware acceleration. Converting the image to raw allows to be used to try out on Laptops, absolutely unsupported! [[Category:Device]] a7e3f20cc01fd10a23203ed543fe17ffc739d0ec 177 176 2018-05-29T13:02:56Z Juest 10 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VirtualBox image is the easiest way to convert to VMware which has been reported to perform better and have good hardware acceleration. Converting the image to raw allows to be used to try out on Laptops, absolutely unsupported! [[Category:Device]] c5a14020b23fb18f652f24180fb46bc58fbb1fa7 192 177 2018-05-29T16:38:09Z Juest 10 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VirtualBox image is the easiest way to convert to VMware which has been reported to perform better and have good hardware acceleration. Converting the qemu image to raw allows to be used to try out on Laptops, please note it's unsupported! [[Category:Device]] ed1c516ef331fc726cb2807ffb1b8e26b808de89 193 192 2018-05-29T18:22:30Z Derby 3 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox, QEMU and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. Please note it's unsupported! [[Category:Device]] b2b1e30a6fed2ea74edaa3b15661055f03a8936c Development 0 61 148 2018-05-23T13:50:24Z Wizzup 4 Created page with "Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.com website is where we post (news) update..." wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.com website is where we post (news) updates, as well as on this maemo.org thread: talk.maemo.org/showthread.php?t=100192&page=1 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 12172f4177d61476803096f290b064a7e770d081 149 148 2018-05-23T13:50:50Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.com website is where we post (news) updates, as well as on this maemo.org thread: talk.maemo.org/showthread.php?t=100192&page=1 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 3f447862dbcd375e3542b19d1be783b944792e3c 159 149 2018-05-24T18:13:27Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: talk.maemo.org/showthread.php?t=100192&page=1 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) All our repositories can be found here: https://github.com/maemo-leste The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 061e3bffc4b8d28e8c46dca521791e7742f18f78 160 159 2018-05-24T18:13:51Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: talk.maemo.org/showthread.php?t=100192&page=1 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 0df6ece8fa3d11a50856be05f0ab296208a20a52 170 160 2018-05-29T02:04:10Z Juest 10 /* Communication and organising */ wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this TMO thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in d08ca85ad7d251aafe556b825633b34fe9d565c2 194 170 2018-05-29T18:24:27Z Derby 3 /* Communication and organising */ Many readers won't know what TMO is wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in f3c781c16d500eaa202a0fb4c1a0b9bc7190e6b9 Leste FAQ 0 62 151 2018-05-23T13:56:10Z Wizzup 4 Created page with "{{Stub}} === What is Maemo Leste? === === Why do we need another mobile operating system? === === Why won't you join the collaborative Halium project? === === What's w..." wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === === Why do we need another mobile operating system? === === Why won't you join the collaborative Halium project? === === What's wrong with Android kernels? === === Why is it important to run mainline Linux? === === Why is Maemo Leste based on Devuan rather than Debian? === === Will Maemo Leste work on ...(device)? === 03b35c07bbf5b1cfbd071747d252953b44b7d9d5 152 151 2018-05-23T13:56:55Z Wizzup 4 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === === Why do we need another mobile operating system? === === Why won't you join the collaborative Halium project? === === What's wrong with Android kernels? === === Why is it important to run mainline Linux? === === Why is Maemo Leste based on Devuan rather than Debian? === === Will Maemo Leste work on ...(device)? === 9c62bc5669250e965ceb58c27cefdcf8a137611c 161 152 2018-05-26T09:31:06Z Wizzup 4 Wizzup moved page [[FAQ]] to [[Leste FAQ]] without leaving a redirect: "FAQ" seems to be some special MediaWiki thing wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === === Why do we need another mobile operating system? === === Why won't you join the collaborative Halium project? === === What's wrong with Android kernels? === === Why is it important to run mainline Linux? === === Why is Maemo Leste based on Devuan rather than Debian? === === Will Maemo Leste work on ...(device)? === 9c62bc5669250e965ceb58c27cefdcf8a137611c 162 161 2018-05-26T09:31:29Z Wizzup 4 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === === Why not add new packages to Fremantle instead? === === Why do we need another mobile operating system? === === Why won't you join the collaborative Halium project? === === What's wrong with Android kernels? === === Why is it important to run mainline Linux? === === Why is Maemo Leste based on Devuan rather than Debian? === === Will Maemo Leste work on ...(device)? === 0046c4bbb201a16bb713d3e18f5041005d36ec3b 163 162 2018-05-26T23:18:18Z Wizzup 4 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why not add new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, wifi stack) or need a lot of updates to be even reasonably secure: ancient browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why is it important to run mainline Linux? === === Why won't you join the collaborative Halium project? === === What's wrong with Android (vendor) kernels? === === Will Maemo Leste work on ...(device)? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. 1b6b06b49d353ff823aeda956bd35813152e7f20 165 163 2018-05-26T23:26:46Z Wizzup 4 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why is it important to run mainline Linux? === === Why won't you join the collaborative Halium project? === === What's wrong with Android (vendor) kernels? === === Will Maemo Leste work on ...(device)? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. 06282a234519297a5aa51aa595326f7fb2f7037f 171 165 2018-05-29T12:48:39Z Juest 10 /* Why not add/extend new packages to Fremantle instead? */ - added link to related wiki page wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why is it important to run mainline Linux? === === Why won't you join the collaborative Halium project? === === What's wrong with Android (vendor) kernels? === === Will Maemo Leste work on ...(device)? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. 18d30c9dc8943aa95f3a956f08eb9ae6e5a5f595 172 171 2018-05-29T12:53:56Z Derby 3 Reorganise and add questions wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === === What is mainline Linux? === === What's wrong with Android (vendor) Linux kernels? === === Why is it important to run mainline Linux? === === How does Maemo Leste compare with postmarketOS? === === How does Maemo Leste compare with PureOS? === === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Are there any technical merits in using System V init with OpenRC instead of systemd? === === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === 93f5afc4cdfec63fadd7f51497b107211ae712fd 173 172 2018-05-29T12:58:53Z Derby 3 /* Does Maemo Leste use Halium? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === === What's wrong with Android (vendor) Linux kernels? === === Why is it important to run mainline Linux? === === How does Maemo Leste compare with postmarketOS? === === How does Maemo Leste compare with PureOS? === === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Are there any technical merits in using System V init with OpenRC instead of systemd? === === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === c0111637d24e91e42619d2c1194c2224ab4af1cd 174 173 2018-05-29T12:59:40Z Derby 3 /* What is mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === === Why is it important to run mainline Linux? === === How does Maemo Leste compare with postmarketOS? === === How does Maemo Leste compare with PureOS? === === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Are there any technical merits in using System V init with OpenRC instead of systemd? === === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === 201139611bcd02e5d10ad856c3caea45a158031c 175 174 2018-05-29T13:01:19Z Derby 3 /* What's wrong with Android (vendor) Linux kernels? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === === How does Maemo Leste compare with postmarketOS? === === How does Maemo Leste compare with PureOS? === === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Are there any technical merits in using System V init with OpenRC instead of systemd? === === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === 2ba23776a5ee75dfdaa4512b1eae8c363c496fc9 178 175 2018-05-29T13:03:31Z Derby 3 /* Why is it important to run mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === === How does Maemo Leste compare with PureOS? === === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Are there any technical merits in using System V init with OpenRC instead of systemd? === === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === 8a5b40054a20dccb8723c8a227a6e101e53d905b 179 178 2018-05-29T13:04:04Z Derby 3 /* How does Maemo Leste compare with postmarketOS? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Are there any technical merits in using System V init with OpenRC instead of systemd? === === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === 618961dd4ef459e4c78196bb2511f99d136655d2 180 179 2018-05-29T13:05:03Z Derby 3 /* How does Maemo Leste compare with PureOS? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. === Are there any technical merits in using System V init with OpenRC instead of systemd? === === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === a86fffe6d80e0b7ad60afd2cbb05534da73d55bb 181 180 2018-05-29T13:07:38Z Derby 3 /* Why is Maemo Leste based on Devuan rather than Debian? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === 54ade2bc1d53fcf7692199e7e2dfeb1a1ddf86ef 182 181 2018-05-29T13:08:50Z Derby 3 /* Are there any technical merits in using System V init with OpenRC instead of systemd? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security. === Does Maemo Leste have a process supervisor? === === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === 3b0c372d0c8ad2c47c37e292751efb635550302f 183 182 2018-05-29T13:09:33Z Derby 3 /* Does Maemo Leste have a process supervisor? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. === Can I run an alternative desktop environment or window manager instead of Hildon? === 6e08711c39d1942e89dd5c97fe0f4bcd42182b96 184 183 2018-05-29T13:11:12Z Derby 3 /* What devices does Maemo Leste work on? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === 8b49888ece345e584bcd8ff038719610ccfef3c5 185 184 2018-05-29T13:12:19Z Derby 3 /* Can I run an alternative desktop environment or window manager instead of Hildon? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 5911a4d277cfa0da0bb68f938d5b16ff7fb285ba 186 185 2018-05-29T13:14:30Z Derby 3 /* How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? */ WIP - need to restructure this into a paragraph wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === - Android kernels (Sailfish, Nemo, UBPorts, LuneOS) - Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) - Proprietary application framework (Silica components) - Proprietary GUI (Sailfish) - Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) - Mir (UBPorts) - Prioritise device compatibility and ports over software freedoms === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. edf787a15859c009e37c6c68a0dda5c4126c1017 187 186 2018-05-29T13:15:46Z Derby 3 /* How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, UBPorts, LuneOS) * Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Proprietary application framework (Silica components) * Proprietary GUI (Sailfish) * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) * Mir (UBPorts) * Prioritise device compatibility and ports over software freedoms === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. d50a7925208d5d08f328b59ad12ee0b7aaa90222 188 187 2018-05-29T13:34:27Z Derby 3 /* Are there any technical merits in using System V init with OpenRC instead of systemd? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, UBPorts, LuneOS) * Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Proprietary application framework (Silica components) * Proprietary GUI (Sailfish) * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) * Mir (UBPorts) * Prioritise device compatibility and ports over software freedoms === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 4400f7b5fa4951805246d321d2e1b43e674085a9 189 188 2018-05-29T16:34:09Z Juest 10 /* Are there any technical merits in using System V init with OpenRC instead of systemd? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages] Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, UBPorts, LuneOS) * Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Proprietary application framework (Silica components) * Proprietary GUI (Sailfish) * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) * Mir (UBPorts) * Prioritise device compatibility and ports over software freedoms === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. c05be3dcedf48310890c0efcb5e88b335f071bcd 190 189 2018-05-29T16:35:08Z Juest 10 /* Why not add/extend new packages to Fremantle instead? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, UBPorts, LuneOS) * Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Proprietary application framework (Silica components) * Proprietary GUI (Sailfish) * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) * Mir (UBPorts) * Prioritise device compatibility and ports over software freedoms === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. b4acd4034cfb709ae05936db0c4ddc86641f23bd 191 190 2018-05-29T16:36:15Z Juest 10 /* What is mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from kernel.org/Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, UBPorts, LuneOS) * Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Proprietary application framework (Silica components) * Proprietary GUI (Sailfish) * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) * Mir (UBPorts) * Prioritise device compatibility and ports over software freedoms === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. d7dfd5451113571dce300fcbb73659b018e5cbdb 195 191 2018-05-29T19:51:31Z Derby 3 /* What is mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, UBPorts, LuneOS) * Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Proprietary application framework (Silica components) * Proprietary GUI (Sailfish) * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) * Mir (UBPorts) * Prioritise device compatibility and ports over software freedoms === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. b8c3ce9b4b789e0cca35c3a22d7a36fb9360d014 A20-OLinuXIno-LIME2 0 63 153 2018-05-23T14:00:57Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=OLIMEX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |s..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=OLIMEX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == == Status == == Installation == Images: https://maedevu.maemo.org/images/olimex-lime2/ u-boot bootloader is provided for the lime2 * flash it * dd if=A20-OLinuXino-Lime2_defconfig.bin of=/dev/yoursdcard bs=1024 seek=8 && sync [[Category:Device]] 608731a715add3f9b38205f05b3447ef4f5f8084 Main Page 0 1 154 123 2018-05-23T14:08:03Z Wizzup 4 Remove devices that already have a page. Just droid4 + n9(50) remaining. wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = See [[:Category:Device]] == N9/N950 == [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; == Droid 4 == [https://maemo-leste.github.io/pages/droid-4-status.html Status] === Installation === ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) === Kernel development === Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] &nbsp; = Development = &nbsp; == Set up a VM == &nbsp; == Packages needing testing == &nbsp; == Packages needing building == &nbsp; == Packages needing porting == &nbsp; = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 15585bb790976977be2e79376d8f131205577459 158 154 2018-05-23T14:17:10Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. &nbsp; = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 455e75c419c5d41e0ef85b5838c6ec138ecb1a52 164 158 2018-05-26T23:19:25Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 4d2ec3fc0c6401ea13d74995a7c8986c20666c6d Nokia N950 0 56 155 140 2018-05-23T14:15:00Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; [[Category:Device]] a0928fdcb8dd729e81e5a78634810d8adc17427c Nokia N9 0 55 156 141 2018-05-23T14:15:28Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} For now, please look at the [[Nokia N950]] page. [[Category:Device]] 4421d54c3a21c6510971422bd70a040650b4aa35 Motorola Droid 4 0 50 157 136 2018-05-23T14:16:40Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || OTG |} == Installation == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) == Kernel development == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 957488d01a6d992189c5ac8bc5bf654389257e89 168 157 2018-05-28T20:45:00Z Pavel 9 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || OTG |} == Installation == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] d24e11707c75c4517ca146d2874c88fff695b0b9 169 168 2018-05-28T20:52:41Z Pavel 9 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Hardware ! Kernel supported ! Leste supported |- | Kernel || - || 4.15 |- | Charging || Yes || Yes |- | Micro USB || Yes || OTG |} == Installation == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] d5d67a383b25f150ca86f73405cea17ec64f9007 Status 0 64 166 2018-05-26T23:34:41Z Wizzup 4 Created page with "{{Stub}} TODO: * Quickly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs)" wikitext text/x-wiki {{Stub}} TODO: * Quickly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs) babab5f0a17adcbf5cef4863ec866e6cba7a6118 167 166 2018-05-26T23:35:33Z Wizzup 4 wikitext text/x-wiki {{Stub}} TODO: * Briefly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs) a1a137f4182724ae62ac71b2ff9b857f1afdbd9d Leste FAQ 0 62 196 195 2018-05-29T20:02:07Z Derby 3 /* How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 218a2379dc98e83c04098440430afcf605292e1e 197 196 2018-05-29T20:06:04Z Derby 3 /* Does Maemo Leste use Halium? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 1c9e4a392d047a6bb07f2cd5b8bfbad9064403e0 198 197 2018-05-29T20:08:05Z Derby 3 /* Does Maemo Leste use Halium? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 2e72ef9e4a952b2a9c58202f54769d9793fcd483 199 198 2018-05-29T20:26:12Z Derby 3 /* Does Maemo Leste use Halium? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 9f094713c3c4fd09e380a150df290a9e7b545a5e 200 199 2018-05-29T20:28:52Z Derby 3 /* Does Maemo Leste use Halium? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 6c51af78716d8d58b2a6b49b0d696381fc65469d 202 200 2018-05-30T11:46:39Z Wizzup 4 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 8027e2c3d12df886f9efba0773515cdd0030a860 203 202 2018-05-30T13:49:49Z Derby 3 /* Why not add/extend new packages to Fremantle instead? */ Fix typos wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 1da245b746f5df7264f853a8ce460f808809be46 204 203 2018-05-30T17:08:09Z Derby 3 /* Are there any technical merits in using System V init with OpenRC instead of systemd? */ Removing link as I don't think it's helpful wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. b003ca22b63a57d05f000cdb1e2582081577077f 205 204 2018-05-30T17:19:05Z Derby 3 /* Does Maemo Leste use Halium? */ Removing line about systemd as it's problably unnecessary wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 25194c1e42a852289e4c1444dea334b0cfe2ac25 206 205 2018-05-30T17:26:46Z Derby 3 /* Does Maemo Leste use Halium? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 813d3fa62b4e1ee9b5946841dfb30673b5aea151 213 206 2018-06-04T22:07:48Z Derby 3 /* What's wrong with Android (vendor) Linux kernels? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 5f694f397a856d09f4f0927d69abf69def48581c Phone 0 65 201 2018-05-30T10:15:14Z Wizzup 4 Created page with "{{Stub}} This page will eventually document how phone calls work on various devices, and what the shared software stack on Maemo Leste is. For now, it's just a collection of..." wikitext text/x-wiki {{Stub}} This page will eventually document how phone calls work on various devices, and what the shared software stack on Maemo Leste is. For now, it's just a collection of various links and things we'll need to look at to make all of this work. <pre> (Test) Programs/code: https://gitlab.com/tui/tui/tree/master/d4 https://github.com/pavelmachek/unicsy_demo/commits/master Replacing proprietary N900 modules with upstream code: https://en.wikipedia.org/wiki/Automatic_gain_control https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/9.0/ https://github.com/gotbletu/shownotes/blob/master/pulseaudio-dynamic-range-compression.md </pre> 96c89de1858f0dfaedacc09636f68448a353601c File:A33 Twister - Leste pre-alpha.jpg 6 66 207 2018-05-30T20:14:41Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 A33-TurboX-Twister 0 67 208 2018-05-30T20:16:00Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |vide..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module. Need to dig into logs to figure out everything that was changed. Otherwise should just work with mainline driver; hopefully soon with Lima as well. == Status == == Installation == TBD [[Category:Device]] ddd870a3e046e8588cc6f533fcc3ec32c5062327 210 208 2018-06-03T09:54:28Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module. Need to dig into logs to figure out everything that was changed. Otherwise should just work with mainline driver; hopefully soon with Lima as well. Wifi driver is currently out of tree: https://github.com/jwrdegoede/rtl8723bs Firmware was extracted from Android: https://github.com/onitake/gsl-firmware (We'll have to find the exact firmware and post it somewhere soon) Picture of the inside: http://wizzup.org/tablet.jpg TODO: - vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) - lima (mali works, but yeah) - audio/speaker support (might just work now) - axp battery reading via /sys interface (for upower) (might just work now) == Status == == Installation == TBD [[Category:Device]] 82c067eaca35dc75d1c1e95be6d5ad80f825194d 211 210 2018-06-03T09:55:17Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module. Need to dig into logs to figure out everything that was changed. Otherwise should just work with mainline driver; hopefully soon with Lima as well. Wifi driver is currently out of tree: https://github.com/jwrdegoede/rtl8723bs Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware (We'll have to find the exact firmware and post it somewhere soon) Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) * lima (mali works, but yeah) * audio/speaker support (might just work now) * axp battery reading via /sys interface (for upower) (might just work now) == Status == == Installation == TBD [[Category:Device]] 3f5ae6dd6439bfdedf424213a177a5b0db96d4dc 212 211 2018-06-03T09:56:11Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module. Need to dig into logs to figure out everything that was changed. Otherwise should just work with mainline driver; hopefully soon with Lima as well. Wifi driver is currently out of tree: https://github.com/jwrdegoede/rtl8723bs Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware (We'll have to find the exact firmware and post it somewhere soon) Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) * lima (mali works, but yeah) * audio/speaker support (might just work now) * axp battery reading via /sys interface (for upower) (might just work now) == Status == == Installation == TBD [[Category:Device]] c862000b133a0c1617222919d7680c807b5c552a Main Page 0 1 209 164 2018-05-30T22:01:59Z Derby 3 /* Description */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 14fbe8b64748cfe1e21be9dd6d6594828687d714 244 209 2018-06-18T16:56:33Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. Fnr an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 582dc0f779421691798392dd9f236ca1d0de29fd Motorola Droid 4/PowerVR 0 68 214 2018-06-08T18:59:43Z Wizzup 4 Created page with "{{Stub}} This page attempts to document useful links or other info to get powervr to work on droid4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_pu..." wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on droid4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ Pandaboard (ES) might be a suitable test platform since it is very similar to the droid4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP cb2811b89fb580c4af0415f6a1059275d8fa0e0b 215 214 2018-06-08T19:04:57Z Wizzup 4 wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on droid4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ Pandaboard (ES) might be a suitable test platform since it is very similar to the droid4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; d36ef6880c32d64d4df73857dc1af4ba5881193b 216 215 2018-06-08T19:07:26Z Wizzup 4 wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on droid4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux Pandaboard (ES) might be a suitable test platform since it is very similar to the droid4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; 300b73ccc5e91b06a72fa74f448483b73f1145f2 217 216 2018-06-08T19:38:24Z TheKit 11 wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux. According to Release Notes, the last SDK to support SGX540 is 4.04.00.03 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders). Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers Ubuntu kernel module mirror: https://github.com/mobiaqua/pvr-omap4-dkms Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort. 3a517ee190cae69514e4f465303cdc736c8271a8 218 217 2018-06-08T19:39:33Z TheKit 11 wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux. According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders). Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers Ubuntu kernel module mirror: https://github.com/mobiaqua/pvr-omap4-dkms Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort. fb9139251d3055e2238e3d0b2a01abf959241b27 219 218 2018-06-08T19:50:03Z Wizzup 4 wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux. According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders). Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers Ubuntu kernel module mirror: https://github.com/mobiaqua/pvr-omap4-dkms Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort. Some notes from irc: <pre> 20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR 20:57 < Wizzup> feel free to add ideas, links/resources, etc 21:37 < NeKit> edited page a bit 21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why 21:39 < Wizzup> for what, for xorg or the older omap 21:40 < Wizzup> or sgx :) 21:40 < Wizzup> (all these names confuse me) 21:40 < NeKit> SGX540 21:42 < Wizzup> we should also involve nikolaus perhaps 21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x 21:42 < Wizzup> ah, ok, I didn't realise it had that core 21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in table 21:44 < Wizzup> what sgx does n900 have? I don't even remember 21:44 < NeKit> SGX530, not sure for core revision 21:44 < Wizzup> ok 21:44 < NeKit> N9/N950 is also SGX530 21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd 21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN </pre> fe9bf043fe5f8083216fd346125ff76c32f9c8bb 220 219 2018-06-08T19:57:14Z Wizzup 4 wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux. According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders). Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers Ubuntu kernel module mirror: https://github.com/mobiaqua/pvr-omap4-dkms Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort. Some notes from irc: <pre> 20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR 20:57 < Wizzup> feel free to add ideas, links/resources, etc 21:37 < NeKit> edited page a bit 21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why 21:39 < Wizzup> for what, for xorg or the older omap 21:40 < Wizzup> or sgx :) 21:40 < Wizzup> (all these names confuse me) 21:40 < NeKit> SGX540 21:42 < Wizzup> we should also involve nikolaus perhaps 21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x 21:42 < Wizzup> ah, ok, I didn't realise it had that core 21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in table 21:44 < Wizzup> what sgx does n900 have? I don't even remember 21:44 < NeKit> SGX530, not sure for core revision 21:44 < Wizzup> ok 21:44 < NeKit> N9/N950 is also SGX530 21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd 21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN 21:47 < Wizzup> this is last non internal - http://processors.wiki.ti.com/index.php/RN_4_04_00_03?keyMatch=SGX540&tisearch=Search-EN 21:50 < Wizzup> not sure why it was dropped :) 21:51 < Wizzup> SDOCM00085667 - Removal of non supported/deprecated devices - OMAP35x with SGX Core 1.0.3(OMAPES=2.x while building) and AM45x(Panda board- OMAPES=7.x) 21:51 < Wizzup> here: http://processors.wiki.ti.com/index.php/RN_4_05_00_01?keyMatch=panda&tisearch=Search-EN </pre> 8c67b46162d87f040290b79cfc467e077133ae02 221 220 2018-06-09T17:05:01Z Derby 3 wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux. According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders). The last SDK with X11 support (DRI/DRM Xorg driver) is 4.10.00.01. Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers Ubuntu kernel module mirror: https://github.com/mobiaqua/pvr-omap4-dkms Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort. Some notes from irc: <pre> 20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR 20:57 < Wizzup> feel free to add ideas, links/resources, etc 21:37 < NeKit> edited page a bit 21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why 21:39 < Wizzup> for what, for xorg or the older omap 21:40 < Wizzup> or sgx :) 21:40 < Wizzup> (all these names confuse me) 21:40 < NeKit> SGX540 21:42 < Wizzup> we should also involve nikolaus perhaps 21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x 21:42 < Wizzup> ah, ok, I didn't realise it had that core 21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in table 21:44 < Wizzup> what sgx does n900 have? I don't even remember 21:44 < NeKit> SGX530, not sure for core revision 21:44 < Wizzup> ok 21:44 < NeKit> N9/N950 is also SGX530 21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd 21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN 21:47 < Wizzup> this is last non internal - http://processors.wiki.ti.com/index.php/RN_4_04_00_03?keyMatch=SGX540&tisearch=Search-EN 21:50 < Wizzup> not sure why it was dropped :) 21:51 < Wizzup> SDOCM00085667 - Removal of non supported/deprecated devices - OMAP35x with SGX Core 1.0.3(OMAPES=2.x while building) and AM45x(Panda board- OMAPES=7.x) 21:51 < Wizzup> here: http://processors.wiki.ti.com/index.php/RN_4_05_00_01?keyMatch=panda&tisearch=Search-EN </pre> a00bfb47de6bce2b552ff7c9bf82b77e56371522 245 221 2018-06-21T07:37:48Z Wizzup 4 wikitext text/x-wiki {{Stub}} This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux. According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders). The last SDK with X11 support (DRI/DRM Xorg driver) is 4.10.00.01. Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers Ubuntu kernel module mirror: https://github.com/mobiaqua/pvr-omap4-dkms Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort. Some notes from irc: <pre> 20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR 20:57 < Wizzup> feel free to add ideas, links/resources, etc 21:37 < NeKit> edited page a bit 21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why 21:39 < Wizzup> for what, for xorg or the older omap 21:40 < Wizzup> or sgx :) 21:40 < Wizzup> (all these names confuse me) 21:40 < NeKit> SGX540 21:42 < Wizzup> we should also involve nikolaus perhaps 21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x 21:42 < Wizzup> ah, ok, I didn't realise it had that core 21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in table 21:44 < Wizzup> what sgx does n900 have? I don't even remember 21:44 < NeKit> SGX530, not sure for core revision 21:44 < Wizzup> ok 21:44 < NeKit> N9/N950 is also SGX530 21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd 21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN 21:47 < Wizzup> this is last non internal - http://processors.wiki.ti.com/index.php/RN_4_04_00_03?keyMatch=SGX540&tisearch=Search-EN 21:50 < Wizzup> not sure why it was dropped :) 21:51 < Wizzup> SDOCM00085667 - Removal of non supported/deprecated devices - OMAP35x with SGX Core 1.0.3(OMAPES=2.x while building) and AM45x(Panda board- OMAPES=7.x) 21:51 < Wizzup> here: http://processors.wiki.ti.com/index.php/RN_4_05_00_01?keyMatch=panda&tisearch=Search-EN </pre> Wizzup plans to take the following steps: 1. Boot mainline on pandaboard 2. Boot latest ubuntu pvr supported kernel on pandaboard 3. See if https://github.com/TexasInstruments/dri3wsegl works on latest ubuntu pvr kernel - if not, ouch 4. See if there are newer releases from ti (kernel and userspace) that might work 5. Port to mainline 6. See if it works on droid4 7. See if various mainline forward ports can be merged (Nikolaus' work) All of this is assuming omapdrmfb, not omapfb c87afb342a8e46db7933d2fd2c6c22a3b0516b42 Packaging 0 69 222 2018-06-11T21:22:06Z Parazyd 1 Initial commit wikitext text/x-wiki The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste We use the Jenkins CI https://phoenix.maemo.org/ along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration = Workflow = Our workflow consists of having the packages in Git, along with respective branches. The master branch in git should represent the latest development. When the sources are ready, we create a new branch called "maemo/ascii", which represents the Devuan suite we base it on. 13580bba6542570b84180c4585add174c2d6328d 223 222 2018-06-13T13:23:49Z Parazyd 1 Mention gbp.conf and add placeholders for Initial Packaging and Package Updating. wikitext text/x-wiki The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste We use the Jenkins CI https://phoenix.maemo.org along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration The base logic of buildng Debian packages in Jenkins comes from https://jenkins-debian-glue.org = Workflow = Our workflow consists of having the packages in Git, along with respective branches. The master branch in git should represent the latest development. When the sources are ready, we create a new branch called "maemo/ascii", which represents the Devuan suite we base it on. Being git-based, our packages require the gbp.conf file inside the debian directory. All of our packages contain the exact same gbp.conf, which is the following: <pre> [DEFAULT] upstream-tag=%(version)s </pre> This file is used by gbp, which in turn is used by jeknins-debian-glue. The rest is standard Debian packaging. = Initial packaging = TODO = Updating a package = TODO 2986d074465921599df844df2aed121ca0721be8 Virtual Machine 0 60 224 193 2018-06-14T20:35:49Z Wizzup 4 Remove weirdly placed unsupported remark wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox, QEMU and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. [[Category:Device]] 3c4f27730ad5faa48a2a772f432aecf2f61920e6 Nokia N900 0 48 225 129 2018-06-14T20:51:20Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches |- | Serial || Yes || Requires special hardware |- | Charging || Yes || Yes |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono, no UI, not enabled by default |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 120935d6ec64325863106254cade66db7ec730e1 226 225 2018-06-14T20:52:40Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches |- | Serial || Yes || Requires special hardware |- | Charging || Yes || Yes |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 6ea7555d6192d1d9a776b24725ddfa2c7d7738f4 227 226 2018-06-14T20:54:23Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || Yes |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 0d17d2ea481e6e42df5ccb029be780d3441a18df 228 227 2018-06-14T20:56:18Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 42a2ea5a61f09fd0bd985a073f90faf6fccdb3d3 231 228 2018-06-14T21:13:56Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] aa5ee2a4fcdce67cd7251a7f168bc3f58f8c6e8a 236 231 2018-06-18T13:28:24Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] b67407f19fec3816b5bc072517e0162e0660a884 Motorola Droid 4 0 50 229 169 2018-06-14T21:11:30Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.14 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Not yet || Audio patches are online, but not yet in Leste kernel tree |- | 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | FM Transmitter || N/A? || |- | FM Receiver || ? || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |} == Installation == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] fd1cd03b90bf7622a1e95471d470bd765830851d 230 229 2018-06-14T21:13:36Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.14 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Not yet || Audio patches are online, but not yet in Leste kernel tree |- | 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | FM Transmitter || N/A? || |- | FM Receiver || ? || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 2f30cb1d1ea7d80b174100a7b76f9446e532be2e Raspberry Pi 2 0 57 232 146 2018-06-14T21:18:26Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Raspberry Pi Foundation |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} 32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3. == Notes == == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 (or 4.16?) || Mainline, no patches |- | Serial || Unknown || |- | Charging || N/A || |- | Wireless || Yes || |- | Ethernet || Yes || |- | USB || Yes || Host |- | Keyboard || N/A || (USB attached works fine) |- | Screen || Yes || |- | 3D Acceleration || Yes || Free driver |- | Touchscreen || N/A || |- | Audio || Yes || |- | 2G/3G data || N/A || |- | SMS || N/A || |- | Phone calls || N/A || |- | FM Transmitter || N/A || |- | FM Receiver || N/A || |- | Accelerometer || N/A || Available as input device, needs MCE work |- | Proximity sensor || N/A || |- | HDMI-out || Yes || |- | TV-out || Not yet || |} == Installation == Images: http://maedevu.maemo.org/images/raspi2/ dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI. [[Category:Device]] e1ba2188a770ef3e14339a9d9bc289bd0e02367e 233 232 2018-06-14T21:19:11Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Raspberry Pi Foundation |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} 32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3. == Notes == Make sure that HDMI is connected on boot, otherwise dsme will reboot the device. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 (or 4.16?) || Mainline, no patches |- | Serial || Unknown || |- | Charging || N/A || |- | Wireless || Yes || |- | Ethernet || Yes || |- | USB || Yes || Host |- | Keyboard || N/A || (USB attached works fine) |- | Screen || Yes || |- | 3D Acceleration || Yes || Free driver |- | Touchscreen || N/A || |- | Audio || Yes || |- | 2G/3G data || N/A || |- | SMS || N/A || |- | Phone calls || N/A || |- | FM Transmitter || N/A || |- | FM Receiver || N/A || |- | Accelerometer || N/A || Available as input device, needs MCE work |- | Proximity sensor || N/A || |- | HDMI-out || Yes || |- | TV-out || Not yet || |} == Installation == Images: http://maedevu.maemo.org/images/raspi2/ dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI. [[Category:Device]] 689b32a7681ad4e9d9e5304c9d6cb6b303549d80 A20-OLinuXIno-LIME2 0 63 234 153 2018-06-14T21:25:52Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=OLIMEX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline |- | Serial || Yes || |- | Charging || N/A || |- | Wireless || N/A || |- | Ethernet || Yes || |- | Mini USB || Yes || OTG |- | Keyboard || N/A || USB attached works |- | Screen || Yes || |- | 3D Acceleration || WIP || Currently llvmpipe, hopefully soon lima: https://gitlab.freedesktop.org/lima/mesa/wikis/home |- | Touchscreen || Yes || (With 4.3" OLIMEX SPI screen, requires additional kernel patches) |- | Audio || Untested || |- | 2G/3G data || N/A || |- | SMS || N/A || |- | Phone calls || N/A || |- | FM Transmitter || N/A || |- | FM Receiver || N/A || |- | Accelerometer || N/A || |- | Proximity sensor || N/A || |- | HDMI-out || Yes || |- | TV-out || Not yet || |} == Installation == Images: https://maedevu.maemo.org/images/olimex-lime2/ u-boot bootloader is provided for the lime2 * flash it * dd if=A20-OLinuXino-Lime2_defconfig.bin of=/dev/yoursdcard bs=1024 seek=8 && sync [[Category:Device]] 1438b90e9989626f076b715564ce722f4c196319 235 234 2018-06-14T21:27:17Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=OLIMEX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware Note that they are not particularly usable, as we did not yet enable Mali GPU acceleration, and without touchscreen a mouse is not very usable, as the pointer is not (yet) visible. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline |- | Serial || Yes || |- | Charging || N/A || |- | Wireless || N/A || |- | Ethernet || Yes || |- | Mini USB || Yes || OTG |- | Keyboard || N/A || USB attached works |- | Screen || Yes || |- | 3D Acceleration || WIP || Currently llvmpipe, hopefully soon lima: https://gitlab.freedesktop.org/lima/mesa/wikis/home |- | Touchscreen || Yes || (With 4.3" OLIMEX SPI screen, requires additional kernel patches) |- | Audio || Untested || |- | 2G/3G data || N/A || |- | SMS || N/A || |- | Phone calls || N/A || |- | FM Transmitter || N/A || |- | FM Receiver || N/A || |- | Accelerometer || N/A || |- | Proximity sensor || N/A || |- | HDMI-out || Yes || |- | TV-out || Not yet || |} == Installation == Images: https://maedevu.maemo.org/images/olimex-lime2/ u-boot bootloader is provided for the lime2 * flash it * dd if=A20-OLinuXino-Lime2_defconfig.bin of=/dev/yoursdcard bs=1024 seek=8 && sync [[Category:Device]] 5ac6767fa3eccc526e0365061dec24d838347d3a Status 0 64 237 167 2018-06-18T13:51:21Z Wizzup 4 wikitext text/x-wiki {{Stub}} TODO: * Briefly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs) The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. {| class="wikitable" ! Feature ! Leste software ! Status ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, ... |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on |- | Wireless || WIP || icd2 + connui || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/icd2 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | USB OTG / Charging || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status |- | LED control || No(t yet || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik) |} 7cb28da48065831b5b1230f37b39ce171dbf230e 238 237 2018-06-18T13:53:12Z Wizzup 4 wikitext text/x-wiki {{Stub}} TODO: * Briefly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs) The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, ... |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on |- | Wireless || WIP || icd2 + connui || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/icd2 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | USB OTG / Charging || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status |- | LED control || No(t yet || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik) |} 5b4906b9816070e8fdc761787a5a8d721b8aa37e 239 238 2018-06-18T14:14:02Z Wizzup 4 wikitext text/x-wiki {{Stub}} TODO: * Briefly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs) The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on |- | Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/icd2 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status |- | LED control || No(t yet || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik) |- | 2G/3G/4G data || No(t yet || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet || ofono, ? || No UI |- | Phone || No(t yet || ofono, ? || No UI, audio routing |} 7c23c0fd61e4fb34c74772f80c6478154b067246 240 239 2018-06-18T14:15:30Z Wizzup 4 wikitext text/x-wiki {{Stub}} TODO: * Briefly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs) The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on |- | Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status |- | LED control || No(t yet || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik) |- | 2G/3G/4G data || No(t yet || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet || ofono, ? || No UI |- | Phone || No(t yet || ofono, ? || No UI, audio routing |} 5991d010a2705a6f9426af640307019fca345827 241 240 2018-06-18T14:31:33Z Wizzup 4 wikitext text/x-wiki {{Stub}} TODO: * Briefly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs) The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on |- | Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status |- | LED control || No(t yet() || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik) |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} 0aa0924d9b6dd985aa4e7907c7de07c5f170a49a 242 241 2018-06-18T16:53:25Z Wizzup 4 wikitext text/x-wiki {{Stub}} TODO: * Briefly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs) The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on |- | Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status |- | LED control || No(t yet) || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik) |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} 24c53b3dc5f49508e5d3992253b6d114cb05f6f3 243 242 2018-06-18T16:54:43Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on |- | Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status |- | LED control || No(t yet) || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik) |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} e0ac8a038e0edd2dc148fae67e57e0d12699bfc7 Nexus 5 0 70 246 2018-07-04T17:51:48Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=LG |codename=Hammerhead |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=LG |codename=Hammerhead |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} == Notes == https://github.com/flto/linux/wiki/hammerhead-upstream == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || ? || ? |- | Serial || ? || |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | (Micro USB) || ? || |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || ? || |- | Touchscreen || Yes || |- | Audio || ? || |- | 2G/3G data || ? || |- | SMS || ? || |- | Phone calls || ? || |- | FM Transmitter || ? || |- | FM Receiver || ? || |- | Accelerometer || ? || |- | Proximity sensor || ? || |- | HDMI-out || ? || |- | TV-out || N/A || |- | GPS || ? || |} == Installation == There are no images available at this time. 1. Boot to fastmode - power of the device, and press and hold power, volume up and volume down. After a few second, you will see the fastboot menu. 2. Unlock: sudo fastboot oem unlock 3. Boot (test) image: sudo fastboot boot test.img === Serial === [[Category:Device]] 29ff59243c2f1bdde248c3c9e8209d8e2d20e046 279 246 2018-11-06T18:27:12Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=LG |codename=Hammerhead |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} == Notes == See [[Nexus 5/WIP]] https://github.com/flto/linux/wiki/hammerhead-upstream == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || ? || ? |- | Serial || ? || |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | (Micro USB) || ? || |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || ? || |- | Touchscreen || Yes || |- | Audio || ? || |- | 2G/3G data || ? || |- | SMS || ? || |- | Phone calls || ? || |- | FM Transmitter || ? || |- | FM Receiver || ? || |- | Accelerometer || ? || |- | Proximity sensor || ? || |- | HDMI-out || ? || |- | TV-out || N/A || |- | GPS || ? || |} == Installation == There are no images available at this time. 1. Boot to fastmode - power of the device, and press and hold power, volume up and volume down. After a few second, you will see the fastboot menu. 2. Unlock: sudo fastboot oem unlock 3. Boot (test) image: sudo fastboot boot test.img === Serial === [[Category:Device]] d54ca279e668f63ec21f3979ac1464584b3a8297 Virtual Machine 0 60 247 224 2018-07-08T22:28:53Z Pavel 9 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. [[Category:Device]] 9a4c58ea36ba0289bf09d50bbe1f3c7bf921620f 248 247 2018-07-08T22:30:21Z Pavel 9 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. == Running on QEMU == To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi [[Category:Device]] 73886429677975b7034176555f55a78e51d96aff 249 248 2018-07-09T10:09:34Z Pavel 9 /* Running on QEMU */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. == Running on QEMU == To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. == Running on real hardware == xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. [[Category:Device]] daf8c064311537754dae6e6037f4ee249f245ad7 258 249 2018-10-05T02:54:28Z Spinal 13 Add VirtualBox instructions wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. == Running on VirtualBox == The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste == Running on QEMU == To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. == Running on real hardware == xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. [[Category:Device]] 881f143bdc90f9c018623658ffce47a29f63432f 259 258 2018-10-05T03:28:59Z Spinal 13 /* Running on VirtualBox */ VirtualBox first run: add ssh host keys wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. == Running on VirtualBox == The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste On the first run you may want to generate ssh host keys to be able to login remotely. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server == Running on QEMU == To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. == Running on real hardware == xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. [[Category:Device]] 5c3f9e8649f1287ebfa4ef3a8388352491d6f820 260 259 2018-10-05T03:55:38Z Spinal 13 /* Running on VirtualBox */ Update the system wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. == Running on VirtualBox == The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot == Running on QEMU == To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. == Running on real hardware == xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. [[Category:Device]] b6052d9e324b9a4acfcac735b342aef321f687aa 261 260 2018-10-05T03:57:58Z Spinal 13 Move common instructions from VirtualBox to a separate section wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. == Running on VirtualBox == The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste == Running on QEMU == To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. == Running on real hardware == xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot [[Category:Device]] ed866ab61c9204fecc28ec7d3d4c138bc3eda0c9 262 261 2018-10-05T04:20:55Z Spinal 13 /* Running on VirtualBox */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. == Running on VirtualBox == The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu. == Running on QEMU == To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. == Running on real hardware == xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot [[Category:Device]] b427bacf0ef18a2005c337ff6ba385a048f52d4a 263 262 2018-10-05T04:25:10Z Spinal 13 Change sections indentation wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu. === QEMU === To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. === Real hardware === xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot [[Category:Device]] 068382b7ffdf0485e749a2c40765c3b430f58912 289 263 2018-11-10T07:24:06Z Pavel 9 /* VirtualBox */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu. For newer versions, .box file is not available. You can still use virtualbox, select "Debian (64-bit)" and 1024MB RAM. === QEMU === To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. === Real hardware === xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot [[Category:Device]] 92af5dd8c0cfa6b27ca57b4302dcedf4fe45295e 290 289 2018-11-10T07:26:21Z Pavel 9 /* Initial configuration */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu. For newer versions, .box file is not available. You can still use virtualbox, select "Debian (64-bit)" and 1024MB RAM. === QEMU === To run image on qemu, you can do: xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi Note that unaccelerated qemu is too slow to run maemo leste in an useful way. === Real hardware === xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] 827c7ee173d7cbdc6576d5155a1779b213c7459f 293 290 2018-11-11T13:36:15Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === The image is archived, we need to unpack it first: mkdir -p ~/VirtualBox\ VMs/maemo-leste tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant. Unpacked files may now be removed: rm -r ~/VirtualBox\ VMs/maemo-leste As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu. For newer versions, .box file is not available. You can still use virtualbox, select "Debian (64-bit)" and 1024MB RAM. === QEMU === Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198 === Real hardware === xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] 911d8cf1825a5fb518de54ffee0d4ca2bb90ae30 294 293 2018-11-19T23:43:43Z Spinal 13 /* VirtualBox */ Update instructions wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198 === Real hardware === xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] 81702e2f882fb3f4e1d891905eef08474dc3feca Status 0 64 250 243 2018-08-27T15:58:54Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status |- | LED control || No(t yet) || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik) |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} 86d8deafaeb9ee163ea074caa9745aa168cb18fb 255 250 2018-09-13T21:39:43Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} c67dfb0c0f5da89a5acdc784d120fcb77e26ee3a 257 255 2018-09-20T14:39:16Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB Periphal || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} d8e6125fa5dc1c9650a18dff0914b3ae2a40c0e9 264 257 2018-10-13T10:53:37Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || Scrolling doesn't work currently |- | Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB Peripheral || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} ad30aa1ce226ed360884cef73543c52ef3d371a8 266 264 2018-10-14T21:15:55Z Spinal 13 Terminal: scrolling is fixed wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || |- | Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | USB Peripheral || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | SMS || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} db65c5b862991f121103d37c7f7064fe7c675b96 274 266 2018-11-03T21:53:33Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || |- | [[Status/Virtual keyboard]] || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless]] || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | [[Status/USB Peripheral]] || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS]] || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} cb18e0f75132370df9d061f0baabf9739cc671c2 275 274 2018-11-03T21:56:16Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} 752ad5c4d2d8a12965b14b34c28c6387c1fd248c 280 275 2018-11-07T09:48:07Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | [[Status/Mobile Data|Mobile data]] || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | Phone || No(t yet) || ofono, ? || No UI, audio routing |} f6f482f9cedc4214652d1394f0f0d4f80d9941aa 281 280 2018-11-07T09:49:46Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || osso-xterm || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc) |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing |} 3bb97464dc692bc60566bfb9818a6d2cc8e32dd7 285 281 2018-11-07T10:15:57Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || status-area-applet-battery, mce, upower || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing |} 37cc062d94648ba764fd9ad951961c966112af9a 287 285 2018-11-07T10:19:31Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [[https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing |} 00c690c8400491de0cb7995c8a6d61cf0ced6b35 288 287 2018-11-07T10:20:25Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing |} ab956e3a96b7a1fec2eafa1c61f78d225b68c438 Nokia N900 0 48 251 236 2018-08-31T21:40:55Z Sicelo 5 Update bluetooth & FM radio info wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] cce5dcc68460892c7afefc29b7494ca1618cc5aa 252 251 2018-08-31T22:24:22Z Sicelo 5 Add Etcher, for Windows users with no access to dd wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 2f0798a786996d6aff25c7debef4372232cde83a 253 252 2018-09-02T08:02:04Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 1cb5e2bba090a3aba68b4c030aa45d6754056c57 254 253 2018-09-03T00:34:17Z Sicelo 5 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Slave only, Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 2a74bab5367b47ebb611aa566e0f69528553c26c 256 254 2018-09-20T13:32:30Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 66dc513bbe6137b84987b44d8256d6d98046dc7b 271 256 2018-11-02T23:16:02Z Unrest 14 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === increate filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 5326bb2a1ae12dec916fd476e284a7efa5169831 272 271 2018-11-02T23:18:59Z Unrest 14 /* increate filesystem size */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] ecef947fc7b9aa618b061af739a856c7858ec34a 273 272 2018-11-02T23:47:19Z Sicelo 5 /* increase filesystem size */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == Also see: https://elinux.org/N900 NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful. Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 Future images will have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 76b11386b1985e81667da9bb6912f999f8b41678 278 273 2018-11-05T21:55:56Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 Future images will have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 53ea3892b2e4f9876b80e5bfe849ad12d0551632 Raspberry Pi 2 0 57 265 233 2018-10-13T19:09:45Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Raspberry Pi Foundation |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} 32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3. == Notes == Make sure that HDMI is connected on boot, otherwise dsme will reboot the device. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 (or 4.16?) || Mainline, no patches |- | Serial || Unknown || |- | Charging || N/A || |- | Wireless || Yes || |- | Ethernet || Yes || |- | USB || Yes || Host |- | Keyboard || N/A || (USB attached works fine) |- | Screen || Yes || |- | 3D Acceleration || Yes || Free driver |- | Touchscreen || Yes (external) || |- | Audio || Yes || |- | 2G/3G data || N/A || |- | SMS || N/A || |- | Phone calls || N/A || |- | FM Transmitter || N/A || |- | FM Receiver || N/A || |- | Accelerometer || N/A || Available as input device, needs MCE work |- | Proximity sensor || N/A || |- | HDMI-out || Yes || |- | TV-out || Not yet || |} == Installation == Images: http://maedevu.maemo.org/images/raspi2/ dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI. [[Category:Device]] 7510df69ad65c0e26795d00ba5068f1eddf1b484 Talk:Virtual Machine 1 71 267 2018-10-19T17:33:34Z Juest 10 Let's discuss! wikitext text/x-wiki == Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == I tried this with a different method, specifically converting the vbox image to raw with vboxmanage and turns out the image is meant to be a full hard drive so you have to copy to a entire hard drive or extract the partition and put that (which is what i did) --[[User:Juest|Juest]] ([[User talk:Juest|talk]]) 17:33, 19 October 2018 (UTC) 9c6cca96f2a42402e3595039dc9b9a99c39745dd Nexus 5/WIP 0 72 268 2018-10-24T17:02:09Z Wizzup 4 Created page with "Documenting bringup. Kernel tree used: https://gitlab.com/postmarketOS/linux-postmarketos/tree/09efb4857f1a4119eced855912043817bd96e064 Kernel config used: https://gitlab.com..." wikitext text/x-wiki Documenting bringup. Kernel tree used: https://gitlab.com/postmarketOS/linux-postmarketos/tree/09efb4857f1a4119eced855912043817bd96e064 Kernel config used: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/config-postmarketos-qcom.armhf Kernel patch(es) applied: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/0001-Fix-Hammerhead-backlight.patch 404b420a4a69b5fb178d2b918dda0b8c5153f22d 269 268 2018-10-25T00:09:10Z Wizzup 4 wikitext text/x-wiki Documenting bringup. * Kernel tree used: https://gitlab.com/postmarketOS/linux-postmarketos/tree/09efb4857f1a4119eced855912043817bd96e064 * Kernel config used: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/config-postmarketos-qcom.armhf * Kernel patch(es) applied: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/0001-Fix-Hammerhead-backlight.patch Kernel config wasn't adequate, lacked support for USB_STORAGE and SCSI, BLK_DEV_SD, SCSI_GENERIC, etc. (Not sure if the options are exactly ok, but mostly). Now able to boot from usb stick (external root): https://wizzup.org/leste-n5-initial.jpg Next up: (much) smaller initramfs (since fastboot requires that we have one), arrange serial/network, fix xorg.conf, look at msm-fb-refresher (if we need it). Then, see if we can boot to hildon-desktop. Once that works, I'm hoping someone else will make a multirom image. 235206338a9842cc7825c0dc4bcbba6bfe12a710 270 269 2018-10-25T00:20:00Z Wizzup 4 wikitext text/x-wiki Documenting bringup. * Kernel tree used: https://gitlab.com/postmarketOS/linux-postmarketos/tree/09efb4857f1a4119eced855912043817bd96e064 * Kernel config used: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/config-postmarketos-qcom.armhf * Kernel patch(es) applied: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/0001-Fix-Hammerhead-backlight.patch * rootfs used https://maedevu.maemo.org/wip/hammerhead/ Kernel config wasn't adequate, lacked support for USB_STORAGE and SCSI, BLK_DEV_SD, SCSI_GENERIC, etc. (Not sure if the options are exactly ok, but mostly). Now able to boot from usb stick (external root): https://wizzup.org/leste-n5-initial.jpg Next up: (much) smaller initramfs (since fastboot requires that we have one), arrange serial/network, fix xorg.conf, look at msm-fb-refresher (if we need it). Then, see if we can boot to hildon-desktop. Once that works, I'm hoping someone else will make a multirom image. 2bc441cd3d198b744bd2c962f80d835a170c4ca7 Status/USB Peripheral 0 73 276 2018-11-03T21:59:52Z Wizzup 4 Created page with "Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do an..." wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: <pre> ifconfig usb0 up 192.168.42.1 ssh root@192.168.42.2 </pre> And then add the following route: <pre> ip route add default via 192.168.42.1 </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Now your Leste device should be able to use your PC network 6d4b0d4b6283091189f0c0674243e476e7a02990 295 276 2018-11-30T16:27:56Z Wizzup 4 wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: <pre> ifconfig usb0 up 192.168.42.1 ssh root@192.168.42.2 </pre> And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Now your Leste device should be able to use your PC network 2cde4acb2c064edaf2025bebb98bbe1fa257999d A33-TurboX-Twister 0 67 277 212 2018-11-03T22:12:19Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module. Need to dig into logs to figure out everything that was changed. Otherwise should just work with mainline driver; hopefully soon with Lima as well. Wifi driver is currently out of tree: https://github.com/jwrdegoede/rtl8723bs Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware (We'll have to find the exact firmware and post it somewhere soon) Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) * lima (mali works, but yeah) * audio/speaker support (might just work now) == Status == == Installation == https://maedevu.maemo.org/images/turbox-twister/ dd the image to the sd card, boot. [[Category:Device]] a84b6e675e340307e5124b9f494ba1bd148c3d4b Status/Phone Calls 0 74 282 2018-11-07T09:50:54Z Wizzup 4 Created page with "Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/27 * https://github.com/maemo-leste/bugtracker/issues/110" wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/27 * https://github.com/maemo-leste/bugtracker/issues/110 3ce8a9d7b8e9fec26ee3ef7b3e3296faa54e003a Status/Mobile Data 0 75 283 2018-11-07T09:59:09Z Wizzup 4 Created page with "Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/iss..." wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/195 We will need the following: * RE of the current data icd2 plugin from Fremantle (as starting base) * Code to interface with ofono, resulting in libicd-network-ofono * Connui UI plugins for gprs - some work is done here: https://github.com/maemo-leste/connui-cellular * Database of various mobile operations and their default APN information * Hardware/driver support a88e2468f8635caf46449b693ba6f3c8ebc96f3d 284 283 2018-11-07T10:13:57Z Wizzup 4 wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/195 * https://github.com/maemo-leste/bugtracker/issues/196 We will need the following: * RE of the current data icd2 plugin from Fremantle (as starting base) * Code to interface with ofono, resulting in libicd-network-ofono * Connui UI plugins for gprs - some work is done here: https://github.com/maemo-leste/connui-cellular * Database of various mobile operations and their default APN information * Hardware/driver support 695dcd48c399284b60448af18baf3054d011ef8d 291 284 2018-11-10T13:13:46Z Wizzup 4 wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/195 * https://github.com/maemo-leste/bugtracker/issues/196 We will need the following: * RE of the current data icd2 plugin from Fremantle (as starting base) * Code to interface with ofono, resulting in libicd-network-ofono * Connui UI plugins for gprs - some work is done here: https://github.com/maemo-leste/connui-cellular * Database of various mobile operations and their default APN information * Hardware/driver support Useful resources/hw/links: * https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, untested) * An USB modem for testing (like Option modems) * ofono: https://01.org/ofono cec3d57c68b72a08d183fb7712acd47b68ee8e9c 292 291 2018-11-11T12:27:05Z Wizzup 4 wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/195 * https://github.com/maemo-leste/bugtracker/issues/196 We will need the following: * RE of the current data icd2 plugin from Fremantle (as starting base) * Code to interface with ofono, resulting in libicd-network-ofono * Connui UI plugins for gprs - some work is done here: https://github.com/maemo-leste/connui-cellular * Database of various mobile operations and their default APN information * Hardware/driver support Useful resources/hw/links: * https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, untested) * An USB modem for testing (like Option modems) * ofono: https://01.org/ofono Olimex 3g modem (should also do voice calls), should work with ofono: * https://www.olimex.com/Products/USB-Modules/MOD-USB3G/ * https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf 2449f066f71f5b7598f122216eecaa86df32986b Status/GPS 0 76 286 2018-11-07T10:18:12Z Wizzup 4 Created page with "Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363" wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363 69aff73f3cf1a93eb3388ffdffa4cffde67bf5d9 Pine64 Anakin Devkit 0 77 296 2018-11-30T20:56:39Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} PineTablet / PinePhone first devkit, codenamed "Anakin". == Notes == WIP. There are no working images yet. http://wiki.pine64.org/index.php/Project_Anakin == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || ?? || |- | Serial || ?? || |- | Charging || ?? || |- | Wireless || ?? || |- | Ethernet || ?? || |- | Bluetooth || ?? || |- | (Micro USB) || N/A? || |- | Keyboard || N/A || |- | Screen || ?? || |- | 3D Acceleration || ?? || Mali/Lima |- | Touchscreen || ?? || |- | Audio || ?? || |- | 2G/3G/LTE data || ?? || Quectel EC20 R2.1 LTE Module |- | SMS || ?? || |- | Phone calls || ?? || |- | HDMI-out || ?? || |- | GPS || ?? || |} == Installation == [[Category:Device]] 78eb5e8927d50ca010b05c924c75e2472e79d384 Status 0 64 297 288 2018-12-01T13:44:05Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || No(t yet) || mce || Currently, this doesn't work yet |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing |- | [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 539c937a5b92616ddf1f5c02a9ad303a3bfa1916 300 297 2018-12-09T16:00:08Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off) |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing |- | [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 2611e7b131114efb547df1378b602d20a9b69a3a 305 300 2018-12-14T12:49:24Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off) |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing |- | [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 378112f4895832812b293a44881908bb485bdc50 307 305 2018-12-20T05:54:39Z Sicelo 5 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off) |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI |- | [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing |- | [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 0cd2fa448f371fd247adccec5b3d6f7295ebc802 309 307 2018-12-20T08:35:16Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off) |- | [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} ad2687e0aec7960279e473387a182104d181db5a 311 309 2018-12-20T08:59:40Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off) |- | [[Status/Mobile Data|Mobile Data]] || WIP) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data ; but works when set up manually using dbus/ifconfig |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} be15629c10e3913c4eebc60b9e06cb7689621626 312 311 2018-12-20T09:01:21Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off) |- | [[Status/Mobile Data|Mobile Data]] || WIP) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data ; but works when set up manually using dbus/ifconfig |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 6ce03128a94667d4cc897187b166ee7ddb234c66 A33-TurboX-Twister 0 67 298 277 2018-12-07T22:34:16Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module (this is no longer true, it is now in mainline staging) Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html) Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) * audio/speaker support (headphones are already detected in alsamixer) == Status == == Installation == (Current image does not yet ship with Lima) https://maedevu.maemo.org/images/turbox-twister/ dd the image to the sd card, boot. [[Category:Device]] 9f5774b94ca93e1f36f7874c09de846ecd0214d9 301 298 2018-12-09T21:03:54Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module (this is no longer true, it is now in mainline staging) Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html) Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) * audio/speaker support (headphones are already detected in alsamixer) == Status == (Some of these values may not be available in the latest image yet) {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207 |- | Serial || Probably || Need to locate it on the board |- | Charging || Yes || |- | Wireless || Yes || Driver is still in staging |- | Bluetooth || ? || |- | (Micro USB) || Yes || Peripheral and OTG |- | Keyboard || N/A || |- | Screen || Yes || sunxi drm |- | 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html |- | Touchscreen || Yes || Resistive |- | Audio || WIP || Headphones work, speakers not yet (or untested) |- | Accelerometer || ? || Not sure if available |- | Proximity sensor || ? || Not sure if available |} == Installation == (Current image does not yet ship with Lima) https://maedevu.maemo.org/images/turbox-twister/ dd the image to the sd card, boot. [[Category:Device]] 9f1b558225ef3d2ab6c22e8cd61681fe61275d28 302 301 2018-12-09T21:05:06Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module (this is no longer true, it is now in mainline staging) Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html) Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) * audio/speaker support (headphones are already detected in alsamixer) == Status == (Some of these values may not be available in the latest image yet) {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207 |- | Serial || Probably || Need to locate it on the board |- | Charging || Yes || |- | Wireless || Yes || Driver is still in staging |- | Bluetooth || ? || |- | (Micro USB) || Yes || Peripheral and OTG |- | Keyboard || N/A || |- | Screen || Yes || sunxi drm |- | 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html |- | Touchscreen || Yes || Resistive |- | Audio || WIP || Headphones work, speakers not yet (or untested) |- | Accelerometer || ? || Not sure if available |- | Proximity sensor || ? || Not sure if available |- | eMMC || Yes || |} == Installation == (Current image does not yet ship with Lima) https://maedevu.maemo.org/images/turbox-twister/ dd the image to the sd card, boot. [[Category:Device]] 338c2a57284a20c8091b7ec24a29ec32aceba1e7 303 302 2018-12-09T21:05:53Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info. Wifi required external kernel module (this is no longer true, it is now in mainline staging) Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html) https://github.com/maemo-leste/bugtracker/issues/181 Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) * audio/speaker support (headphones are already detected in alsamixer) == Status == (Some of these values may not be available in the latest image yet) {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207 |- | Serial || Probably || Need to locate it on the board |- | Charging || Yes || |- | Wireless || Yes || Driver is still in staging |- | Bluetooth || ? || |- | (Micro USB) || Yes || Peripheral and OTG |- | Keyboard || N/A || |- | Screen || Yes || sunxi drm |- | 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html |- | Touchscreen || Yes || Resistive |- | Audio || WIP || Headphones work, speakers not yet (or untested) |- | Accelerometer || ? || Not sure if available |- | Proximity sensor || ? || Not sure if available |- | eMMC || Yes || |} == Installation == (Current image does not yet ship with Lima) https://maedevu.maemo.org/images/turbox-twister/ dd the image to the sd card, boot. [[Category:Device]] 2e17d5f9274ab8a4c5ae79d906ca88ed76242746 304 303 2018-12-09T21:07:32Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Extracted touchscreen firmware from android, had to extract exact touchscreen driver info ; Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html) Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) == Status == (Some of these values may not be available in the latest image yet) {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207 |- | Serial || Probably || Need to locate it on the board |- | Charging || Yes || |- | Wireless || Yes || Driver is still in staging |- | Bluetooth || ? || |- | (Micro USB) || Yes || Peripheral and OTG |- | Keyboard || N/A || |- | Screen || Yes || sunxi drm |- | 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html https://github.com/maemo-leste/bugtracker/issues/181 |- | Touchscreen || Yes || Resistive |- | Audio || WIP || Headphones work, speakers not yet (or untested) |- | Accelerometer || ? || Not sure if available |- | Proximity sensor || ? || Not sure if available |- | eMMC || Yes || |- | HW accelerated video encode/decode|| ? || Should work with Cedrus in Linux 4.20+ |} == Installation == (Current image does not yet ship with Lima) https://maedevu.maemo.org/images/turbox-twister/ dd the image to the sd card, boot. [[Category:Device]] 1473aa5176ba4a256cd866a9f34fd07fb4554e35 306 304 2018-12-14T12:52:15Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html Extracted touchscreen firmware from android, had to extract exact touchscreen driver info ; Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html) Picture of the inside: http://wizzup.org/tablet.jpg TODO: * vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ ) == Status == (Some of these values may not be available in the latest image yet) {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207 |- | Serial || Probably || Need to locate it on the board |- | Charging || Yes || |- | Wireless || Yes || Driver is still in staging |- | Bluetooth || ? || |- | (Micro USB) || Yes || Peripheral and OTG |- | Keyboard || N/A || |- | Screen || Yes || sunxi drm |- | 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html https://github.com/maemo-leste/bugtracker/issues/181 |- | Touchscreen || Yes || Capacitive |- | Audio || WIP || Headphones work, speakers not yet (or untested) |- | Accelerometer || ? || Not sure if available |- | Proximity sensor || ? || Not sure if available |- | eMMC || Yes || |- | HW accelerated video encode/decode|| ? || Should work with Cedrus in Linux 4.20+ |} == Installation == (Current image does not yet ship with Lima) https://maedevu.maemo.org/images/turbox-twister/ dd the image to the sd card, boot. [[Category:Device]] f8b6f900b302df5414516d6f1700f12c2e44d141 Nokia N900 0 48 299 278 2018-12-08T10:04:47Z Sicelo 5 /* Increase filesystem size */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] c3e2081e4f1933d4bcfa3aa457b9e8392f0e4755 314 299 2019-01-04T00:00:08Z Spinal 13 /* Installation */ add u-boot section wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 == U-Boot setup == 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="vfat" EOF u-boot-update-bootmenu 4. Reboot the device == Increase filesystem size == As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] e25f537741f2cdf22ae8b358b341c4bd83561173 315 314 2019-01-04T00:02:45Z Spinal 13 Change sections format back wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="vfat" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports [[Category:Device]] 705001b039e4b8df21de7d972d67376cb3ac937d 316 315 2019-01-05T06:07:37Z Spinal 13 Add "Accessing MTD" section wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="vfat" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 678e3d2375cd17ce58f5bad2dacc63ece9704c4b 327 316 2019-03-08T01:13:03Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="vfat" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] cd07f37daf772a39e3c8a37707eeef60fe92123d 328 327 2019-03-08T01:14:05Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 8d552593c1195b3e0f77edd5c0470c329e0d5df7 329 328 2019-03-08T01:16:32Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] b9f6ac1bf6857aa12334885c02e3c49dd869eeb4 330 329 2019-03-11T02:54:08Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] c34b5f5a552cbea1c668f56ed4abfc89b54f6139 Main Page 0 1 308 244 2018-12-20T05:54:46Z Sicelo 5 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 0425fb1aaa9c499f4332eb4dbc293607bb0b2ad8 317 308 2019-01-25T22:54:43Z Derby 3 /* Description */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armel, armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 291f24f4ab8b1fb66388ae7eb54ff400c0090c6b Status/Wireless 0 78 310 2018-12-20T08:58:56Z Wizzup 4 Created page with "If Linux has a driver and wpa_supplicant can drive the device, our libicd-network-wpasupplicant should just work in combination with icd2." wikitext text/x-wiki If Linux has a driver and wpa_supplicant can drive the device, our libicd-network-wpasupplicant should just work in combination with icd2. 0c88a8814435345815bc7a50a615a5ab1e75b56e Leste FAQ 0 62 313 213 2018-12-20T21:51:28Z Derby 3 Fix typos wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 02c8fce20228e87fce1f1bfa27e28c24c7f29de4 323 313 2019-03-05T13:04:35Z Derby 3 /* What is mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 2a420297148fcc6efd1b99525a8f3b93a4bde21a 332 323 2019-03-13T20:17:24Z Derby 3 /* What's wrong with Android (vendor) Linux kernels? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those that do have very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 25ed42efae0aa965aa46b829d246d7a7fe11ea1e 333 332 2019-03-13T20:41:48Z Derby 3 /* What's wrong with Android (vendor) Linux kernels? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'', forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === * Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS) ** They prioritise device compatibility and ports over software freedoms * Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen) ** Proprietary application framework (Sailfish Silica components) ** Proprietary GUI (Sailfish) ** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo) * Mir debacle (Ubuntu Touch) === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. dcd7445203509a54d0cba98308dcb6dafb73e1eb 335 333 2019-03-16T15:43:34Z Derby 3 /* How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'', forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 432b83113776ace79385ad90662b98d0a4a4bc58 336 335 2019-03-16T15:49:47Z Derby 3 /* What's wrong with Android (vendor) Linux kernels? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. b17dcedd072410575d098c030efd5381562a40b2 337 336 2019-03-19T23:00:14Z Derby 3 /* Why is it important to run mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. This means regressions are not allowed and ensures kernel-to-userspace ABI stability, meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 568526a7ad61114f157a1b32bc55c314eb145026 338 337 2019-03-19T23:01:57Z Derby 3 /* Why is it important to run mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. This means regressions are not allowed and ensures kernel-to-userspace ABI stability, meaning that once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. fe38a38d1d8f435f003aec9a6f887747d7c051d5 339 338 2019-03-19T23:07:56Z Derby 3 /* How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. This means regressions are not allowed and ensures kernel-to-userspace ABI stability, meaning that once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 3888a3bd452a132c8e99a70b12968cc4f5d0e02d 340 339 2019-03-23T15:38:28Z Derby 3 /* Why is it important to run mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API/ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. b720233d87e753c35bfac007f8928291b9f80e5b 341 340 2019-03-23T15:42:46Z Derby 3 /* Why is Maemo Leste based on Devuan rather than Debian? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API/ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 639e2b67843816fc0b42d77c7f7e054f0992743a 342 341 2019-03-23T15:53:42Z Derby 3 /* Why is Maemo Leste based on Devuan rather than Debian? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API/ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 08b2a2c235473d08023b7ed47f2fa49fdb7c44ab 343 342 2019-03-23T16:45:06Z Derby 3 /* What is mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API/ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 3ae68df413af31305bca13ce9b16d3a532525e41 344 343 2019-03-23T17:09:39Z Derby 3 /* Why is it important to run mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Does Maemo Leste have a process supervisor? === Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 23c2764f67a07d4529c75ebb8a463f46106e152e 345 344 2019-03-23T17:19:03Z Derby 3 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. 6df9726e5d45dea7336f43d91cb5d982d8d2733c Virtual Machine 0 60 318 294 2019-02-06T17:19:21Z Jonsger 18 indent as code wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198 === Real hardware === xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt-get update apt-get upgrade apt-get install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] 4bbe2576a774bdd681500f45ddbf7acb166cc1a4 319 318 2019-02-06T17:39:09Z Jonsger 18 /* Initial configuration */ we have apt :) wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198 === Real hardware === xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] cd73e25bdfb65e1bd223d713e13a1a988d9720d1 320 319 2019-02-06T17:45:31Z Jonsger 18 /* Installation */ provide example for QEMU, but still link to the relevant GitHub issue wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. === Real hardware === xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] 54137e69c02bb264f5525ed8df04a02fcb79c402 Motorola Droid 4 0 50 321 230 2019-03-03T21:10:24Z Wizzup 4 Update for to-be 5.0 kernel wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | FM Transmitter || N/A? || |- | FM Receiver || ? || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 8196a91ab0c56b88c3aeac36abbdb66fb54c52a8 322 321 2019-03-03T21:30:05Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | FM Transmitter || N/A? || |- | FM Receiver || ? || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * fastboot, adb and git, xzcat, dd * Host Linux system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone: * https://github.com/tmlind/droid4-kexecboot.git briefly show kexecboot. Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard, this is how I did it: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz > maemo-leste-1.0-armhf-droid4-20190227.img''' # '''sudo dd if=maemo-leste-1.0-armhf-droid4-20190227.img of=/dev/MICROSDCARD-DEVICE''' # '''sync; sync; sync''' Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 20d49879467ec3704aaebaf3f776d262080fd459 331 322 2019-03-11T16:13:58Z Spinal 13 /* Installation using kexecboot */ Optimize flashing image to sdcard command sequence wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | FM Transmitter || N/A? || |- | FM Receiver || ? || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * fastboot, adb and git, xzcat, dd * Host Linux system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone: * https://github.com/tmlind/droid4-kexecboot.git briefly show kexecboot. Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard, this is how I did it: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] (This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package) Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 7b1d08b2c35c105909b4d01c72336c766244b617 334 331 2019-03-13T20:49:45Z Derby 3 /* Safestrap+ddroid Installation (no longer recommended and outdated) */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches |- | FM Transmitter || N/A? || |- | FM Receiver || ? || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * fastboot, adb and git, xzcat, dd * Host Linux system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone: * https://github.com/tmlind/droid4-kexecboot.git briefly show kexecboot. Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard, this is how I did it: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 3138deae813000914226db09e51d2ecea0300bf6 Development 0 61 324 194 2019-03-05T16:37:03Z Spinal 13 Add "Multiarch" section wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later just issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: rm -fr /var/lib/container/stretch === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 5650c1448893cf85adc60ebf7f7e5cdd0d0453ad 325 324 2019-03-05T16:38:56Z Spinal 13 /* Multiarch */ Minor fix wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: rm -fr /var/lib/container/stretch === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 737d82b572aa54dffdf1523febf0bab4945bb92c 326 325 2019-03-05T16:40:44Z Spinal 13 /* Multiarch */ Add sudo to rm command wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 5e8b25871d995af3f499ea228392880d6d37b1e0 Leste FAQ 0 62 346 345 2019-03-23T17:40:33Z Derby 3 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. c76af9c69058f8b6afdf64ef795b6a271db3d6d3 364 346 2019-05-14T13:19:25Z Sicelo 5 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone. === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are packages (for N900 especially) Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 24725652a5d62cf5fed41adaecdaf4aad137224f Development 0 61 347 326 2019-03-27T12:48:15Z Spinal 13 /* Multiarch */ Fix link wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 14e4525de7526243d60a15cd4b02d08a065d2725 357 347 2019-04-30T23:15:49Z Derby 3 /* Technical */ Add instructions for how to set up an ARM/ARM64 chroot on a PC wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 644da78ab78b7b79dc77249829d461dcdcab078a 362 357 2019-05-12T21:16:27Z Sicelo 5 /* Developing on a device */ wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in acbd855946bb1cc7765273987b45adb9f6ee226f 363 362 2019-05-12T21:17:13Z Sicelo 5 /* Multiarch */ wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.) * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in db822944607056b699994bce3c00466508fcaac5 366 363 2019-06-14T15:09:54Z Sicelo 5 Adding mailing list info wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in cf922943926eda080e708c7d9b35ffc12c5fff2b 377 366 2019-07-27T00:03:33Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 13d92585c3aebe6d465b2a3d7df1f2b727913f95 379 377 2019-07-27T22:53:38Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in c4c6ebc3f6bb48d0a853a2dadc12cf4473e6e43a 381 379 2019-07-27T23:02:22Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192 * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 15ae97c889020dff0118ded8f85bfd6c26948d7d Nokia N900 0 48 348 330 2019-04-15T06:12:09Z Wizzup 4 Comment on 3d accel improvements in status wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, no UI, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 0a61961afcb59f629cb3c67ff05e511248a2c418 349 348 2019-04-15T06:15:15Z Wizzup 4 reflect connui-cellular work wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] f112e1c8012119ed31b6066d69a533736fb664c7 368 349 2019-06-14T15:16:13Z Sicelo 5 Indicate that WiFi needs non-free firmware blob wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] bd00cc575ce1da700bdcd0f217c66309da5de32e 369 368 2019-06-14T15:59:13Z Sicelo 5 Indicate that there is no battery data at all when needing calibration wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Not yet || |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | HDMI-out || N/A || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 3535c477ab3bbcd9f542008ab9bc670c4a72fc82 371 369 2019-07-22T20:49:25Z Sicelo 5 Add usage note for FM transmitter and remove reference to HDMI wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install `v4l-utils`, then enable chip and set frequency using: `v4l2-ctl -d /dev/radio0 --set-ctrl=mute=0 -f <freq> ` |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 3ebf3203cd595d891f25d00a3f23132b41cf3f44 372 371 2019-07-24T07:44:51Z Sicelo 5 Add tune_power_level property for the FM Transmitter wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install `v4l-utils`, then enable chip and set frequency using: `v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq> ` |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] b3bac2968d40dbd8053ed5454a17039e6f101e13 373 372 2019-07-24T07:47:20Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] f5ff19570844d1c3055fefb48cdad83281b38417 374 373 2019-07-24T07:56:32Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Not yet || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] e1087c33162d6663164fbc83ac803f2bbde71233 375 374 2019-07-24T09:02:10Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || Not yet || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Not yet || |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 2c24d418d0f3af5471defc87577921a7fe98dfa0 376 375 2019-07-24T12:04:57Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 59f2a63980172184b65350ff7a3e9813612ccff3 Motorola Droid 4 0 50 350 334 2019-04-15T06:16:27Z Wizzup 4 Update connectivity wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | FM Transmitter || N/A? || |- | FM Receiver || ? || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * fastboot, adb and git, xzcat, dd * Host Linux system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone: * https://github.com/tmlind/droid4-kexecboot.git briefly show kexecboot. Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard, this is how I did it: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 7f464286fb67f13f3f9a4e028c961a2683f8f7a4 356 350 2019-04-27T21:57:00Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * fastboot, adb and git, xzcat, dd * Host Linux system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone: * https://github.com/tmlind/droid4-kexecboot.git briefly show kexecboot. Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard, this is how I did it: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 9e1d61b158cfdf4db90edbe620a99dc48e53e793 378 356 2019-07-27T20:54:52Z Dgby714 22 Added instructions for Windows flashing wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 7423be868fbcb0a2902ed3abf39f84074ce99dfc Status 0 64 351 312 2019-04-15T06:20:01Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off) |- | [[Status/Mobile Data|Mobile Data]] || WIP) || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 9dbecb06509fe2a42349603233f782662fd9a885 352 351 2019-04-15T06:20:49Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP) || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 5adad0b4bdc618966c6a334ce072710e0f779dd5 353 352 2019-04-15T06:23:41Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 5d8fcaade4a4d7c044ed17627d4ed14c497e98c4 355 353 2019-04-15T06:52:43Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged) |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} db283231b79ad9f33416a0ac33b47fb5f8c9fc71 370 355 2019-06-14T16:00:41Z Sicelo 5 Indicate that WiFi and VKB are known to be working wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} abc68a444e4916450bd7f368b34805902ce27a87 389 370 2019-08-12T22:38:25Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |} 2eb2f6bb5157eb0ca758da65c430c01c29a69ecc Status/Mobile Data 0 75 354 292 2019-04-15T06:25:11Z Wizzup 4 wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/195 * https://github.com/maemo-leste/bugtracker/issues/196 We will need the following: * RE of the current data icd2 plugin from Fremantle (as starting base) * Code to interface with ofono, resulting in libicd-network-ofono * Connui UI plugins for gprs and port it to ofono https://github.com/maemo-leste/connui-cellular * Database of various mobile operations and their default APN information * Hardware/driver support Useful resources/hw/links: * https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, works for non-data only) * An USB modem for testing (like Option modems) * ofono: https://01.org/ofono Olimex 3g modem (should also do voice calls), should work with ofono: * https://www.olimex.com/Products/USB-Modules/MOD-USB3G/ * https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf Modems from Pine64 Devkits work with ofono: * http://wiki.pine64.org/index.php/Project_Anakin * http://wiki.pine64.org/index.php/Project_Don't_be_evil d27c5b5599394c106f8b98f53959923d62852e00 390 354 2019-08-12T22:39:55Z Wizzup 4 wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/195 * https://github.com/maemo-leste/bugtracker/issues/196 We will need the following: * RE of the current data icd2 plugin from Fremantle (as starting base) * Code to interface with ofono, resulting in libicd-network-ofono * Connui UI plugins for gprs and port it to ofono https://github.com/maemo-leste/connui-cellular * Database of various mobile operations and their default APN information * Hardware/driver support Useful resources/hw/links: * https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, works for non-data only) * An USB modem for testing (like Option modems) * ofono: https://01.org/ofono Olimex 3g modem (should also do voice calls), should work with ofono: * https://www.olimex.com/Products/USB-Modules/MOD-USB3G/ * https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf USB passthrough on QEMU can work like this (note -device usb-host), pick proper product/vendor IDs: <pre> sudo qemu-system-x86_64 -hda \ /ext4/leste/maemo-leste-1.0-amd64-virtual-20181102.qcow2 \ -vga virtio -enable-kvm -cpu host -smp cores=2 -m 4096 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 -display gtk \ -usb \ -device usb-host,vendorid=0x2c7c,productid=0x0125 \ -device usb-host,vendorid=0x13d3,productid=0x3346 \ -monitor stdio </pre> Modems from Pine64 Devkits work with ofono: * http://wiki.pine64.org/index.php/Project_Anakin * http://wiki.pine64.org/index.php/Project_Don't_be_evil 32d6a3f68fd116f781157702cd68d2b3bd7b02c0 391 390 2019-08-12T22:40:50Z Wizzup 4 wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/195 * https://github.com/maemo-leste/bugtracker/issues/196 We will need the following: * <s>RE of the current data icd2 plugin from Fremantle (as starting base)</s> * <s>Code to interface with ofono, resulting in libicd-network-ofono</s> (WIP) * <s>Connui UI plugins for gprs and port it to ofono https://github.com/maemo-leste/connui-cellular</s> (WIP) * <s>Database of various mobile operations and their default APN information</s> in connui-cellular and ofono * <s>Hardware/driver support</s> (working for various devices) Useful resources/hw/links: * https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, works for non-data only) * An USB modem for testing (like Option modems) * ofono: https://01.org/ofono Olimex 3g modem (should also do voice calls), should work with ofono: * https://www.olimex.com/Products/USB-Modules/MOD-USB3G/ * https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf USB passthrough on QEMU can work like this (note -device usb-host), pick proper product/vendor IDs: <pre> sudo qemu-system-x86_64 -hda \ /ext4/leste/maemo-leste-1.0-amd64-virtual-20181102.qcow2 \ -vga virtio -enable-kvm -cpu host -smp cores=2 -m 4096 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 -display gtk \ -usb \ -device usb-host,vendorid=0x2c7c,productid=0x0125 \ -device usb-host,vendorid=0x13d3,productid=0x3346 \ -monitor stdio </pre> Modems from Pine64 Devkits work with ofono: * http://wiki.pine64.org/index.php/Project_Anakin * http://wiki.pine64.org/index.php/Project_Don't_be_evil 95773ac6024df3e3618677d6ec41ab99851b275a Pine64 DontBeEvil Devkit 0 79 358 2019-05-11T14:51:32Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} PinePhone devkit, codenamed "Don't Be Evil". == Notes == WIP. We are working on images. A lot of things already work, though. http://wiki.pine64.org/index.php/Project_Don't_be_evil == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7 |- | Serial || Yes || |- | Charging || Yes || |- | Wireless || Yes || 8723bs |- | Ethernet || Yes || |- | Bluetooth || ?? || |- | USB C || Yes || Host and OTG |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes/WIP || Mali/Lima |- | Touchscreen || Yes || |- | Audio || Yes || Headphones and speaker work |- | 2G/3G/LTE data || ?? || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board |- | SMS || WIP || |- | Phone calls || WIP || |- | HDMI-out || Yes || |- | GPS || WIP || |} == Installation == [[Category:Device]] 28a8e2f6a06b89b6e7e3b7d4fe9e2e991805e47d 359 358 2019-05-11T14:52:24Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} PinePhone devkit, codenamed "Don't Be Evil". == Notes == WIP. We are working on images. A lot of things already work, though. http://wiki.pine64.org/index.php/Project_Don't_be_evil See this page for some screenshots: https://talk.maemo.org/showpost.php?p=1556424&postcount=227 == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7 |- | Serial || Yes || |- | Charging || Yes || |- | Wireless || Yes || 8723bs |- | Ethernet || Yes || |- | Bluetooth || ?? || |- | USB C || Yes || Host and OTG |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes/WIP || Mali/Lima |- | Touchscreen || Yes || |- | Audio || Yes || Headphones and speaker work |- | 2G/3G/LTE data || ?? || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board |- | SMS || WIP || |- | Phone calls || WIP || |- | HDMI-out || Yes || |- | GPS || WIP || |} == Installation == [[Category:Device]] 8b52c5ee36b5dcb93c0d7bcc88ca2a6e92b9b9ff 360 359 2019-05-11T14:55:39Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} PinePhone devkit, codenamed "Don't Be Evil". == Notes == WIP. We are working on images. A lot of things already work, though. http://wiki.pine64.org/index.php/Project_Don't_be_evil See this page for some screenshots: https://talk.maemo.org/showpost.php?p=1556424&postcount=227 Lima-enabled mesa is available in the 'lima' component: https://phoenix.maemo.org/job/mesa-repos/ / https://maedevu.maemo.org/leste/dists/leste/lima/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7 |- | Serial || Yes || |- | Charging || Yes || |- | Wireless || Yes || 8723bs |- | Ethernet || Yes || |- | Bluetooth || ?? || |- | USB C || Yes || Host and OTG |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes/WIP || Mali/Lima |- | Touchscreen || Yes || |- | Audio || Yes || Headphones and speaker work |- | 2G/3G/LTE data || ?? || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board |- | SMS || WIP || |- | Phone calls || WIP || |- | HDMI-out || Yes || |- | GPS || WIP || |} == Installation == [[Category:Device]] f5217dca4378a86413836c4ff9976b5ea077988d 361 360 2019-05-11T14:59:21Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} PinePhone devkit, codenamed "Don't Be Evil". == Notes == WIP. We are working on images. A lot of things already work, though. http://wiki.pine64.org/index.php/Project_Don't_be_evil See this page for some screenshots: https://talk.maemo.org/showpost.php?p=1556424&postcount=227 Lima-enabled mesa is available in the 'lima' component: https://phoenix.maemo.org/job/mesa-repos/ / https://maedevu.maemo.org/leste/dists/leste/lima/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7 |- | Serial || Yes || |- | Charging || Yes || |- | Wireless || Yes || 8723bs |- | Ethernet || Yes || |- | Bluetooth || ?? || |- | USB C || Yes || Host and OTG |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes/WIP || Mali/Lima |- | Touchscreen || Yes || |- | Audio || Yes || Headphones and speaker work |- | 2G/3G/LTE data || WIP || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board |- | SMS || WIP || |- | Phone calls || WIP || |- | HDMI-out || Yes || |- | GPS || WIP || |- | Front Camera || ??? || Either front or back camera already works |- | Back Camera || ??? || Either front or back camera already works |} == Installation == [[Category:Device]] daf9e63fc53c37ae2ee515c73d45dea5ac1b1969 Main Page 0 1 365 317 2019-06-14T14:45:34Z Sicelo 5 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 1367df0e6a6168efb1067b2e434eb9347cc5ef18 367 365 2019-06-14T15:09:55Z Sicelo 5 Adding mailing list info wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 43d0e2c67b61a31ac9f3527bc88f13b56aa05b61 Development/Building Packages 0 80 380 2019-07-27T22:56:46Z Wizzup 4 Initial version. wikitext text/x-wiki = How you can build package = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you) You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste/ * The testing/development repository: https://maedevu.maemo.org/leste-devel Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: http://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. f6e9c21294872b9885102b473cde1df7ad1d2645 383 380 2019-07-27T23:04:19Z Wizzup 4 wikitext text/x-wiki = How you can build package = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you) You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste/ * The testing/development repository: https://maedevu.maemo.org/leste-devel We will in the near future have a repository with "extra" packages, which are not core, but useful applications nonetheless. There is also the (currently incomplete) Maemo Bayamo repository for Devuan Beowulf (aka Debian Buster) compatibility. Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: http://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. dfaf39331b4f16ee2671a3805e1d08ffd9f4f294 Development/Modified Software 0 81 382 2019-07-27T23:02:49Z Wizzup 4 Created page with "TODO, expand on this, why they are patched, etc: * gtk2 * SDL * qt5 (?) * gtk3 (?) * ..." wikitext text/x-wiki TODO, expand on this, why they are patched, etc: * gtk2 * SDL * qt5 (?) * gtk3 (?) * ... d9c77232e9e25d4c383241396db97e5304e9fed9 386 382 2019-07-27T23:13:24Z Wizzup 4 wikitext text/x-wiki TODO, expand on this, why they are patched, etc: * gtk2: extra widgets are added, menu patches, integration with virtual keyboard for (any) text field, theming * SDL: full screen patches, other window manager patches * qt5 (?): TBD * gtk3 (?): Same as gtk2, currently not patched, though. 77dd28be19942ade00c86fbe3275f5c7a43de70b 388 386 2019-07-30T21:40:27Z Derby 3 Add xorg-server wikitext text/x-wiki TODO, expand on this, why they are patched, etc: * gtk2: extra widgets are added, menu patches, integration with virtual keyboard for (any) text field, theming * SDL: full screen patches, other window manager patches * qt5 (?): TBD * gtk3 (?): Same as gtk2, currently not patched, though. * xorg-server: Patched modesetting for rotation. 56781b5bb5a50c27fba085a8d7b36e5f4eaa0b7d Development/Porting Packages 0 82 384 2019-07-27T23:06:26Z Wizzup 4 Created page with " = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if there already are Debian packagi..." wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) ae9bec1acf9c44bc283dcac0050a45212894b292 385 384 2019-07-27T23:08:02Z Wizzup 4 wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) 3d1cf2c19d1054d3ff51089022e522154f0c864a Raspberry Pi 2 0 57 387 265 2019-07-27T23:20:50Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Raspberry Pi Foundation |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} 32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3. == Notes == Make sure that HDMI is connected on boot, otherwise dsme will reboot the device. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 4.15 (or 4.16?) || Mainline, no patches |- | Serial || Unknown || |- | Charging || N/A || |- | Wireless || Yes || |- | Ethernet || Yes || |- | USB || Yes || Host |- | Keyboard || N/A || (USB attached works fine) |- | Screen || Yes || |- | 3D Acceleration || Yes || Free driver |- | Touchscreen || Yes (external) || |- | Audio || Yes || |- | 2G/3G data || N/A || |- | SMS || N/A || |- | Phone calls || N/A || |- | FM Transmitter || N/A || |- | FM Receiver || N/A || |- | Accelerometer || N/A || |- | Proximity sensor || N/A || |- | HDMI-out || Yes || |- | TV-out || Not yet || |} == Installation == Images: http://maedevu.maemo.org/images/raspi2/ dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI. [[Category:Device]] fa833fcedb3e9d9ed7402d88f1a2dfbb18a52fcf Status/Mobile Data/Dev 0 83 392 2019-08-14T22:05:44Z Wizzup 4 Initial page wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> (Registered to network, network operation mode - normal or GAN only, the int is unknown) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> ce6fa0b5851f837e62b7a53d41cadf336632de2f 393 392 2019-08-14T22:06:51Z Wizzup 4 wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> (Registered to network, network operation mode - normal or GAN only, the int is unknown) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> Radio access technology <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology method return sender=:1.19 -> dest=:1.1247 reply_serial=2 byte 2 int32 0 </pre> 4e72311597e403133151822907915499def2b6ab 394 393 2019-08-14T22:10:05Z Wizzup 4 wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> (Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> Radio access technology <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology method return sender=:1.19 -> dest=:1.1247 reply_serial=2 byte 2 int32 0 </pre> Registration status ( <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status method return sender=:1.19 -> dest=:1.1271 reply_serial=2 byte 0 uint16 1521 uint32 13377698 uint32 16 uint32 204 byte 0 byte 27 int32 0 dbus_g_proxy_end_call(proxy, call_id, &error, G_TYPE_UCHAR, &network_reg_status, G_TYPE_UINT, &network_current_lac, G_TYPE_UINT, &network_current_cell_id, G_TYPE_UINT, &network_operator_code, G_TYPE_UINT, &network_country_code, G_TYPE_UCHAR, &network_type, G_TYPE_UCHAR, &network_supported_services, G_TYPE_INT, &error_value, G_TYPE_INVALID); </pre> Network selection mode (mode, errr val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode method return sender=:1.19 -> dest=:1.1319 reply_serial=2 byte 2 int32 0 </pre> bf03a6706cdcf6bd25b3ed75a904accc75025b6c 395 394 2019-08-14T22:12:44Z Wizzup 4 wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> (Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> Radio access technology <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology method return sender=:1.19 -> dest=:1.1247 reply_serial=2 byte 2 int32 0 </pre> Registration status ( <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status method return sender=:1.19 -> dest=:1.1271 reply_serial=2 byte 0 uint16 1521 uint32 13377698 uint32 16 uint32 204 byte 0 byte 27 int32 0 dbus_g_proxy_end_call(proxy, call_id, &error, G_TYPE_UCHAR, &network_reg_status, G_TYPE_UINT, &network_current_lac, G_TYPE_UINT, &network_current_cell_id, G_TYPE_UINT, &network_operator_code, G_TYPE_UINT, &network_country_code, G_TYPE_UCHAR, &network_type, G_TYPE_UCHAR, &network_supported_services, G_TYPE_INT, &error_value, G_TYPE_INVALID); </pre> Network selection mode (mode, errr val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode method return sender=:1.19 -> dest=:1.1319 reply_serial=2 byte 2 int32 0 </pre> Scan for available networks: <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network method return sender=:1.19 -> dest=:1.1438 reply_serial=2 array [ byte 2 byte 3 byte 3 ] array [ string "16" string "04" string "08" ] array [ string "204" string "204" string "204" ] array [ string "T-Mobile NL" string "vodafone NL" string "NL KPN" ] array [ byte 0 byte 2 byte 2 ] array [ byte 1 byte 1 byte 1 ] int32 0 </pre> ade70028dbb26c76ef27d4636dfce5ad6215db17 Status/Mobile Data/Dev 0 83 396 395 2019-08-14T22:13:14Z Wizzup 4 wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> (Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> Radio access technology <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology method return sender=:1.19 -> dest=:1.1247 reply_serial=2 byte 2 int32 0 </pre> Registration status <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status method return sender=:1.19 -> dest=:1.1271 reply_serial=2 byte 0 uint16 1521 uint32 13377698 uint32 16 uint32 204 byte 0 byte 27 int32 0 dbus_g_proxy_end_call(proxy, call_id, &error, G_TYPE_UCHAR, &network_reg_status, G_TYPE_UINT, &network_current_lac, G_TYPE_UINT, &network_current_cell_id, G_TYPE_UINT, &network_operator_code, G_TYPE_UINT, &network_country_code, G_TYPE_UCHAR, &network_type, G_TYPE_UCHAR, &network_supported_services, G_TYPE_INT, &error_value, G_TYPE_INVALID); </pre> Network selection mode (mode, err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode method return sender=:1.19 -> dest=:1.1319 reply_serial=2 byte 2 int32 0 </pre> Scan for available networks: <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network method return sender=:1.19 -> dest=:1.1438 reply_serial=2 array [ byte 2 byte 3 byte 3 ] array [ string "16" string "04" string "08" ] array [ string "204" string "204" string "204" ] array [ string "T-Mobile NL" string "vodafone NL" string "NL KPN" ] array [ byte 0 byte 2 byte 2 ] array [ byte 1 byte 1 byte 1 ] int32 0 </pre> 3cad075ff41c285240f56d8bdfa9129294d68ab0 397 396 2019-08-14T22:20:51Z Wizzup 4 wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control TODO: * cancel_select_network * select_network * select_network_mode * set_selected_radio_access_technology * get_operator_name (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> (Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> Radio access technology <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology method return sender=:1.19 -> dest=:1.1247 reply_serial=2 byte 2 int32 0 </pre> Registration status <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status method return sender=:1.19 -> dest=:1.1271 reply_serial=2 byte 0 uint16 1521 uint32 13377698 uint32 16 uint32 204 byte 0 byte 27 int32 0 dbus_g_proxy_end_call(proxy, call_id, &error, G_TYPE_UCHAR, &network_reg_status, G_TYPE_UINT, &network_current_lac, G_TYPE_UINT, &network_current_cell_id, G_TYPE_UINT, &network_operator_code, G_TYPE_UINT, &network_country_code, G_TYPE_UCHAR, &network_type, G_TYPE_UCHAR, &network_supported_services, G_TYPE_INT, &error_value, G_TYPE_INVALID); </pre> Network selection mode (mode, err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode method return sender=:1.19 -> dest=:1.1319 reply_serial=2 byte 2 int32 0 </pre> Scan for available networks: <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network method return sender=:1.19 -> dest=:1.1438 reply_serial=2 array [ byte 2 byte 3 byte 3 ] array [ string "16" string "04" string "08" ] array [ string "204" string "204" string "204" ] array [ string "T-Mobile NL" string "vodafone NL" string "NL KPN" ] array [ byte 0 byte 2 byte 2 ] array [ byte 1 byte 1 byte 1 ] int32 0 </pre> 8ee563650f8b80e36156373c631b550fc30edb3d 408 397 2019-08-25T18:10:33Z Wizzup 4 wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control TODO: * cancel_select_network * select_network * select_network_mode * set_selected_radio_access_technology * get_operator_name (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> (Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> Radio access technology <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology method return sender=:1.19 -> dest=:1.1247 reply_serial=2 byte 2 int32 0 </pre> Registration status <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status method return sender=:1.19 -> dest=:1.1271 reply_serial=2 byte 0 uint16 1521 uint32 13377698 uint32 16 uint32 204 byte 0 byte 27 int32 0 dbus_g_proxy_end_call(proxy, call_id, &error, G_TYPE_UCHAR, &network_reg_status, G_TYPE_UINT, &network_current_lac, G_TYPE_UINT, &network_current_cell_id, G_TYPE_UINT, &network_operator_code, G_TYPE_UINT, &network_country_code, G_TYPE_UCHAR, &network_type, G_TYPE_UCHAR, &network_supported_services, G_TYPE_INT, &error_value, G_TYPE_INVALID); </pre> Network selection mode (mode, err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode method return sender=:1.19 -> dest=:1.1319 reply_serial=2 byte 2 int32 0 </pre> Scan for available networks: <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network method return sender=:1.19 -> dest=:1.1438 reply_serial=2 array [ byte 2 byte 3 byte 3 ] array [ string "16" string "04" string "08" ] array [ string "204" string "204" string "204" ] array [ string "T-Mobile NL" string "vodafone NL" string "NL KPN" ] array [ byte 0 byte 2 byte 2 ] array [ byte 1 byte 1 byte 1 ] int32 0 </pre> Modem state from SSC: <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.19 -> dest=:1.1731 reply_serial=2 string "sim_ready" </pre> 6060d9ad643bfc0587bd0e769afc5365ab6f077b 409 408 2019-08-25T18:48:53Z Wizzup 4 wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control TODO: * cancel_select_network * select_network * select_network_mode * set_selected_radio_access_technology * get_operator_name (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> Other modem states <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.19 -> dest=:1.1731 reply_serial=2 string "sim_ready" </pre> (Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> Radio access technology <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology method return sender=:1.19 -> dest=:1.1247 reply_serial=2 byte 2 int32 0 </pre> Registration status <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status method return sender=:1.19 -> dest=:1.1271 reply_serial=2 byte 0 uint16 1521 uint32 13377698 uint32 16 uint32 204 byte 0 byte 27 int32 0 dbus_g_proxy_end_call(proxy, call_id, &error, G_TYPE_UCHAR, &network_reg_status, G_TYPE_UINT, &network_current_lac, G_TYPE_UINT, &network_current_cell_id, G_TYPE_UINT, &network_operator_code, G_TYPE_UINT, &network_country_code, G_TYPE_UCHAR, &network_type, G_TYPE_UCHAR, &network_supported_services, G_TYPE_INT, &error_value, G_TYPE_INVALID); </pre> Network selection mode (mode, err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode method return sender=:1.19 -> dest=:1.1319 reply_serial=2 byte 2 int32 0 </pre> Scan for available networks: <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network method return sender=:1.19 -> dest=:1.1438 reply_serial=2 array [ byte 2 byte 3 byte 3 ] array [ string "16" string "04" string "08" ] array [ string "204" string "204" string "204" ] array [ string "T-Mobile NL" string "vodafone NL" string "NL KPN" ] array [ byte 0 byte 2 byte 2 ] array [ byte 1 byte 1 byte 1 ] int32 0 </pre> 79bf4de8805506ccc41dec037cf00824c924b187 410 409 2019-08-25T18:51:06Z Wizzup 4 wikitext text/x-wiki This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control TODO: * cancel_select_network * select_network * select_network_mode * set_selected_radio_access_technology * get_operator_name (Modem online or not) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.18 -> dest=:1.1112 reply_serial=2 string "online" </pre> Other modem states <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state method return sender=:1.19 -> dest=:1.1731 reply_serial=2 string "sim_ready" </pre> I guess there are at least a couple more, see https://github.com/maemo-leste/connui-cellular/blob/aec1443964ec08f4575dcbe4a1ef1083a966fca4/lib/code-ui.c#L679 (Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state method return sender=:1.19 -> dest=:1.1150 reply_serial=2 byte 1 byte 0 int32 0 </pre> Radio access technology <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology method return sender=:1.19 -> dest=:1.1247 reply_serial=2 byte 2 int32 0 </pre> Registration status <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status method return sender=:1.19 -> dest=:1.1271 reply_serial=2 byte 0 uint16 1521 uint32 13377698 uint32 16 uint32 204 byte 0 byte 27 int32 0 dbus_g_proxy_end_call(proxy, call_id, &error, G_TYPE_UCHAR, &network_reg_status, G_TYPE_UINT, &network_current_lac, G_TYPE_UINT, &network_current_cell_id, G_TYPE_UINT, &network_operator_code, G_TYPE_UINT, &network_country_code, G_TYPE_UCHAR, &network_type, G_TYPE_UCHAR, &network_supported_services, G_TYPE_INT, &error_value, G_TYPE_INVALID); </pre> Network selection mode (mode, err val) <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode method return sender=:1.19 -> dest=:1.1319 reply_serial=2 byte 2 int32 0 </pre> Scan for available networks: <pre> Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network method return sender=:1.19 -> dest=:1.1438 reply_serial=2 array [ byte 2 byte 3 byte 3 ] array [ string "16" string "04" string "08" ] array [ string "204" string "204" string "204" ] array [ string "T-Mobile NL" string "vodafone NL" string "NL KPN" ] array [ byte 0 byte 2 byte 2 ] array [ byte 1 byte 1 byte 1 ] int32 0 </pre> 94e2d21917024ad0cfedc91d1884891efa9bd66c Status 0 64 398 389 2019-08-23T07:32:59Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/Games|Games & Entertainment]] || No(t yet) || SDL, existing games || |} 1b71b18845241b417cda0afddc88669485aa98aa 402 398 2019-08-24T12:36:56Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/Games|Games & Entertainment]] || WIP || SDL, existing games || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |} 91783ec83207e6056fc33cc818085562fc3f6509 404 402 2019-08-24T13:02:44Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/Games|Games & Entertainment]] || WIP || SDL, existing games || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |} 1ae694fcf8d2d2aea257a309dbc8e3b9f95288a9 Status/Games 0 84 399 2019-08-23T07:36:25Z Wizzup 4 Created page with "= Status = * Need to add/import osso-games: https://github.com/maemo-leste/bugtracker/issues/238 * Need to test out some SDL fixes, possibly fix bugs: https://github.com/maem..." wikitext text/x-wiki = Status = * Need to add/import osso-games: https://github.com/maemo-leste/bugtracker/issues/238 * Need to test out some SDL fixes, possibly fix bugs: https://github.com/maemo-leste/bugtracker/issues/18 = Wishlist = * drnoksnes - [[User:Wizzup]] * latest scummvm [[User:Wizzup]] * (...) = Resources = https://wiki.maemo.org/Games 0d778c0518c33ed539a837ffed5bc39fdfe01012 403 399 2019-08-24T12:40:48Z Wizzup 4 wikitext text/x-wiki = Status = * Need to add/import osso-games: https://github.com/maemo-leste/bugtracker/issues/238 * Need to test out some SDL fixes, possibly fix bugs: https://github.com/maemo-leste/bugtracker/issues/18 = Working = * Mahjong is reported to work (not yet in repos) * Marbles is getting there = Wishlist = * drnoksnes - [[User:Wizzup]] * latest scummvm [[User:Wizzup]] * (...) = Resources = https://wiki.maemo.org/Games c47950300a576ac50ca97b7223996fd31a265f3c 405 403 2019-08-25T13:10:37Z Tyusha 23 /* Wishlist */ wikitext text/x-wiki = Status = * Need to add/import osso-games: https://github.com/maemo-leste/bugtracker/issues/238 * Need to test out some SDL fixes, possibly fix bugs: https://github.com/maemo-leste/bugtracker/issues/18 = Working = * Mahjong is reported to work (not yet in repos) * Marbles is getting there = Wishlist = * drnoksnes - [[User:Wizzup]] * latest scummvm [[User:Wizzup]] * latest solarus [[User:tyusha]] * (...) = Resources = https://wiki.maemo.org/Games e1ec2d2e3d72a14ec7034c10b494a8f6bc60847f Nokia N900 0 48 400 376 2019-08-23T09:01:31Z Wizzup 4 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 2c01f8d44310c0570c6815e0dab77c456c81ac02 416 400 2019-10-04T15:25:33Z Derby 3 /* Status */ radio-bcm2048 was removed from staging wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] ea6762fcb1ee89913deeae3dce438415a6ebc9e0 435 416 2019-12-06T00:03:12Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 5d4b7d5683308d5df1790f1d34dd5d2526af84c6 441 435 2019-12-22T20:23:58Z Wizzup 4 /* If you don't want to use/install Fremantle, or want to install quickly */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 0fb7381bf4b6738673f0e6ddb882dd75eb2cd9bf Pine64 Anakin Devkit 0 77 401 296 2019-08-23T09:37:07Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} PineTablet / PinePhone first devkit, codenamed "Anakin". == Notes == Images: https://maedevu.maemo.org/images/pinephone-dontbeevil/ http://wiki.pine64.org/index.php/Project_Anakin == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1+ || |- | Serial || Yes || |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || Yes || |- | Bluetooth || ?? || |- | USB-C || Yes || |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes/WIP || Mali/Lima |- | Touchscreen || Yes || |- | Audio || Yes || |- | 2G/3G/LTE data || Yes || Quectel EC20 R2.1 LTE Module |- | SMS || Yes, no UI || |- | Phone calls || Yes, audio routing wip || |- | HDMI-out || Untested || |- | GPS || Probably (part of the modem) || |} == Installation == dd the image to an sd card. [[Category:Device]] 9581df67b5e7344c3c710b17857387bccd5c4c31 406 401 2019-08-25T17:40:31Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} PineTablet / PinePhone first devkit, codenamed "Anakin". == Notes == http://wiki.pine64.org/index.php/Project_Anakin == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1+ || |- | Serial || Yes || |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || Yes || |- | Bluetooth || ?? || |- | USB-C || Yes || |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes/WIP || Mali/Lima |- | Touchscreen || Yes || |- | Audio || Yes || |- | 2G/3G/LTE data || Yes || Quectel EC20 R2.1 LTE Module |- | SMS || Yes, no UI || |- | Phone calls || Yes, audio routing wip || |- | HDMI-out || Untested || |- | GPS || Probably (part of the modem) || |} == Installation == dd the image to an sd card. [[Category:Device]] ad69b3c329b850e6e911bd74d5410583974f6ee6 Pine64 DontBeEvil Devkit 0 79 407 361 2019-08-25T17:40:43Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} PinePhone devkit, codenamed "Don't Be Evil". == Notes == WIP. We are working on images. A lot of things already work, though. http://wiki.pine64.org/index.php/Project_Don't_be_evil See this page for some screenshots: https://talk.maemo.org/showpost.php?p=1556424&postcount=227 Lima-enabled mesa is available in the 'lima' component: https://phoenix.maemo.org/job/mesa-repos/ / https://maedevu.maemo.org/leste/dists/leste/lima/ Images: https://maedevu.maemo.org/images/pinephone-dontbeevil/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7 |- | Serial || Yes || |- | Charging || Yes || |- | Wireless || Yes || 8723bs |- | Ethernet || Yes || |- | Bluetooth || ?? || |- | USB C || Yes || Host and OTG |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes/WIP || Mali/Lima |- | Touchscreen || Yes || |- | Audio || Yes || Headphones and speaker work |- | 2G/3G/LTE data || WIP || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board |- | SMS || WIP || |- | Phone calls || WIP || |- | HDMI-out || Yes || |- | GPS || WIP || |- | Front Camera || ??? || Either front or back camera already works |- | Back Camera || ??? || Either front or back camera already works |} == Installation == [[Category:Device]] 76f5bed3def0af76f4e91a7427f41965c2ce2689 Motorola Droid 4 0 50 411 378 2019-08-26T19:28:44Z Sicelo 5 Add info about keymap and bluetooth wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || No || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] b8fbbf08549931e3e1649a73a70cc3e846697040 412 411 2019-08-26T19:45:18Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 691aa64cde51bd5ef44ce8790e61945c470ed541 417 412 2019-10-04T17:00:28Z Sicelo 5 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] c29d15f7ba6ebb8203027d69ad13e148caa997ab 418 417 2019-10-19T22:24:49Z Wizzup 4 Add instructions to make 'adb reboot bootloader' work. wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} ... == Notes == Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB. # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 2e4e29071248a1fbbe7efa27ab729a7db0fc983b 420 418 2019-11-08T11:19:14Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB. # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] f7fd5d89af705bd1c46b541099f68c45c9e99529 Status/USB Peripheral 0 73 413 295 2019-09-20T21:41:28Z Minicom 21 add default password wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: <pre> ifconfig usb0 up 192.168.42.1 ssh root@192.168.42.2 </pre> The default password is <code>toor</code>. And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Now your Leste device should be able to use your PC network 63237524ab7d35b52f3381d908f9e43a115eebb8 414 413 2019-09-20T23:47:08Z Minicom 21 add default config file wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: <pre> ifconfig usb0 up 192.168.42.1 ssh root@192.168.42.2 </pre> The default password is <code>toor</code>. And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Now your Leste device should be able to use your PC network == Notes == * The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code> 53ac925d5f78c48636957c2934129f25207e23d0 415 414 2019-09-21T11:58:49Z Minicom 21 enable iptables note wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: <pre> ifconfig usb0 up 192.168.42.1 ssh root@192.168.42.2 </pre> The default password is <code>toor</code>. And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code> Now your Leste device should be able to use your PC network == Notes == * The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code> d4c7630e813905c0db1cab96182f107d47723641 Motorola Droid 4/Modem 0 85 419 2019-11-08T11:18:29Z Wizzup 4 Add notes about how to use/start the modem for voice calls wikitext text/x-wiki Modem modules & integration with latest kernel + patches: <pre> 01:17 < tmlind_> you need to modprobe snd-soc-cpcap, snd-soc-motmdm, and then snd-soc-audio-graph-card 01:17 < tmlind_> try this led backlight series: 01:17 < tmlind_> https://lists.freedesktop.org/archives/dri-devel/2019-October/238988.html 01:17 < tmlind_> you may need to add something to the dts file too, not sure 01:18 < tmlind_> something to tell whichc led is the backlight, the binding patch should have info about it 01:18 < Wizzup> mhm, ok. 01:19 < tmlind_> for modem, you want phy-mapphone-mdm6600 and ohci-platform loaded, then the snd-soc drivers above 01:19 < tmlind_> oh and motorola-mdm too 01:20 < tmlind_> and for idling ohci when not in use, you want to configure /etc/udev/rules.d/ file with: 01:20 < tmlind_> ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2a70", TEST=="power/control" ATTR{power/control}="auto" 01:21 < tmlind_> and you probably also need some entry for the /dev/motmdm* file permissions there too </pre> e7422e5610907a7f471366733bd84b5142b503f3 Virtual Machine 0 60 421 320 2019-11-09T06:18:50Z Arvl 25 /* Real hardware */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. === Real hardware === The contents of the `qcow2` file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the contents of the `qcow2` file, decompress it first and convert it into `raw` format. $ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz $ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw The raw image that it yields, can then be setup as a loopback device, and its partitions mounted. # losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw # mkdir /mnt/maemo-virt # mount /dev/loop0p1 /mnt/maemo-virt Setup one `Linux` partition on the device to be used for booting, format it with a GRUB-compatible filesystem (ext4, for example), then mount it as well. # cfdisk /dev/sdb # ... # mkfs.ext4 /dev/sdb1 # mkdir /mnt/maemo-bare # mount /dev/sdb1 /mnt/maemo-bare Change directory to the loop partition, the copy over its contents into the bare metal partition. # cd /mnt/maemo-virt # rsync -aAHXv * /mnt/maemo-bare Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root. # mount --bind /dev /mnt/maemo-bare/dev # mount --bind /proc /mnt/maemo-bare/proc # mount --bind /sys /mnt/maemo-bare/sys # chroot /mnt/maemo-bare /bin/bash Load the new root's shell profile, install GRUB to the bare metal boot device (/dev/sdb, in this example), then regenerate the GRUB configuration file. # . /etc/profile # grub-install /dev/sdb # grub-mkconfig -o /boot/grub/grub.cfg After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation. # umount /mnt/maemo-virt # umount -AR /mnt/maemo-bare # reboot == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] 4bc35179a57f425cb873d10ecf1ee0a1f8453317 422 421 2019-11-09T06:22:53Z Arvl 25 /* Real hardware */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. === Real hardware === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format. $ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz $ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw The raw image that it yields, can then be setup as a loopback device, and its partitions mounted. # losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw # mkdir /mnt/maemo-virt # mount /dev/loop0p1 /mnt/maemo-virt Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem ("ext4", for example), then mount it as well. # cfdisk /dev/sdb # ... # mkfs.ext4 /dev/sdb1 # mkdir /mnt/maemo-bare # mount /dev/sdb1 /mnt/maemo-bare Change directory to the loop partition, the copy over its contents into the bare metal partition. # cd /mnt/maemo-virt # rsync -aAHXv * /mnt/maemo-bare Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root. # mount --bind /dev /mnt/maemo-bare/dev # mount --bind /proc /mnt/maemo-bare/proc # mount --bind /sys /mnt/maemo-bare/sys # chroot /mnt/maemo-bare /bin/bash Load the new root's shell profile, install GRUB to the bare metal boot device ("/dev/sdb", in this example), then regenerate the GRUB configuration file. # . /etc/profile # grub-install /dev/sdb # grub-mkconfig -o /boot/grub/grub.cfg After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation. # umount /mnt/maemo-virt # umount -AR /mnt/maemo-bare # reboot == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] 39ce7867aae56f5b6bc715cb813f4e359d5c7151 423 422 2019-11-09T06:29:44Z Arvl 25 /* Real hardware */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. === Real hardware === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format. $ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz $ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw The raw image that it yields, can then be setup as a loopback device, and its partitions mounted. # losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw # mkdir /mnt/maemo-virt # mount /dev/loop0p1 /mnt/maemo-virt Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well. # cfdisk /dev/sdb # ... # mkfs.ext4 /dev/sdb1 # mkdir /mnt/maemo-bare # mount /dev/sdb1 /mnt/maemo-bare Change directory to the loop partition, the copy over its contents into the bare metal partition. # cd /mnt/maemo-virt # rsync -aAHXv * /mnt/maemo-bare Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root. # mount --bind /dev /mnt/maemo-bare/dev # mount --bind /proc /mnt/maemo-bare/proc # mount --bind /sys /mnt/maemo-bare/sys # chroot /mnt/maemo-bare /bin/bash Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file. # . /etc/profile # grub-install /dev/sdb # grub-mkconfig -o /boot/grub/grub.cfg After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation. # umount /mnt/maemo-virt # umount -AR /mnt/maemo-bare # reboot == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] fc72af7260775deae8d3a4e09a79889bbb1bc1e3 IRC channel 0 54 424 134 2019-11-17T20:20:18Z Sicelo 5 wikitext text/x-wiki We are on '''irc.freenode.net''' ; channel '''#maemo-leste''' You can connect from your browser using the [https://webchat.freenode.net/ webchat]. However, a dedicated IRC client is recommended for long-term use. 8f6ca503b5f967ae376096849ec86f9623acc651 User:Sicelo 2 86 425 2019-11-17T21:38:22Z Sicelo 5 Created page with "Eswatini ..." wikitext text/x-wiki Eswatini ... bdc942d9d81c30b124f697f9de356441a0456067 426 425 2019-11-17T21:47:53Z Sicelo 5 wikitext text/x-wiki [[User:Sicelo/Wiki Tests]] ef949778dc4551e3874b666207e64a8a6622770a User:Sicelo/Wiki Tests 2 87 427 2019-11-17T22:24:43Z Sicelo 5 Created page with "__NOTOC__ <div> <h1 style="text-align: center;">Welcome to the Maemo Leste Wiki!</h1> </div>" wikitext text/x-wiki __NOTOC__ <div> <h1 style="text-align: center;">Welcome to the Maemo Leste Wiki!</h1> </div> f9e7299c655787d362492f8ca8802fb6bf828ac7 428 427 2019-11-17T22:51:16Z Sicelo 5 wikitext text/x-wiki __NOTOC__ <h1 style="text-align: center;">Welcome to the Maemo Leste Wiki!</h1> <p>[https://en.wikipedia.org/wiki/Leste Names of winds]</p> c8ff6f85f5c3725578614bc74db370a1cab2e78f 431 428 2019-11-18T20:59:52Z Sicelo 5 wikitext text/x-wiki __NOTOC__ <div style="margin:auto;">[[File:Leste-logo.png|x250px]]</div> <h1 style="text-align: center;">Welcome to the Maemo Leste Wiki!</h1> <p>[https://en.wikipedia.org/wiki/Leste Names of winds]</p> 09c0777cb8805636e4d309665e82f95212d63637 432 431 2019-11-18T21:54:26Z Sicelo 5 wikitext text/x-wiki __NOTOC__ [[File:Leste-logo.png|250px|frameless|center|bottom|Maemo Leste Logo]] <h1 style="font-size: 36px; text-align: center; padding: 1.5em; background: #dedede">Welcome to the Maemo Leste Wiki!</h1> Introduction *Project Description - Status (general status) - Roadmap *Name -[https://en.wikipedia.org/wiki/Leste Names of winds] *FAQ Devices !Target mainlined devices (limited support for others) - images * N900 (status) * Droid 4 (status) * etc. Communications: *Blog *IRC *TMO *ML *GH Contribute *Development *Issue Tracker *Other tasks, e.g. wiki 0bb2542127f3f2936aaa3a091ec4683d605b5ea1 433 432 2019-11-18T21:58:53Z Sicelo 5 wikitext text/x-wiki __NOTOC__ [[File:Leste-logo.png|250px|frameless|center|bottom|Maemo Leste Logo]] <h1 style="font-size: 36px; text-align: center; padding: 1.5em; background: #dedede">Welcome to the Maemo Leste Wiki!</h1> Introduction *Project Description - Status (general status) - Roadmap *Name -[https://en.wikipedia.org/wiki/Leste Names of winds], https://wiki.maemo.org/Codenames *FAQ Devices !Target mainlined devices (limited support for others) - images * N900 (status) * Droid 4 (status) * etc. Communications: *Blog *IRC *TMO *ML *GH Contribute *Development *Issue Tracker *Other tasks, e.g. wiki 20f8aa3bb910bb392432b489eb0ce3b86cb66347 434 433 2019-11-18T22:00:21Z Sicelo 5 wikitext text/x-wiki __NOTOC__ [[File:Leste-logo.png|250px|frameless|center|bottom|Maemo Leste Logo]] <h1 style="font-size: 36px; text-align: center; padding: 1.5em; background: #dedede">Welcome to the Maemo Leste Wiki!</h1> Introduction *Project Description - Status (general status) - Roadmap *Name -[https://en.wikipedia.org/wiki/Leste Names of winds], https://wiki.maemo.org/Codenames, https://ggweather.com/winds.html *FAQ Devices !Target mainlined devices (limited support for others) - images * N900 (status) * Droid 4 (status) * etc. Communications: *Blog *IRC *TMO *ML *GH Contribute *Development *Issue Tracker *Other tasks, e.g. wiki a7408b1399279be57ddb820cde1ab95010c64b1e File:Leste-logo.png 6 88 429 2019-11-18T08:06:07Z Sicelo 5 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 430 429 2019-11-18T08:09:54Z Sicelo 5 Sicelo uploaded a new version of [[File:Leste-logo.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Main Page 0 1 436 367 2019-12-15T16:07:16Z Sicelo 5 /* Roadmap */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://leste.maemo.org/index.php?title=Wishlist&action=edit&redlink=1 https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 0bebaa8ff758f939b250e18c37fff437158b0479 Wishlist 0 89 437 2019-12-15T16:12:54Z Sicelo 5 Created page with "If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise..." wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == 4453bc53be4b21853a7c645b9516d8105193e6f8 438 437 2019-12-21T17:23:40Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) 3fe2a49f4d0830fbf601f3e03335f288abc5d15a 439 438 2019-12-21T21:20:55Z Sicelo 5 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball abc629935ee72da923a2cd57b426bc7b5121f14c 440 439 2019-12-21T21:22:58Z Sicelo 5 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/ 6d888dd57f6f2277e653584bb71ce60ccfc28361 442 440 2019-12-24T18:28:05Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/ * scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/ 1333efa7d2caef2e312175ab9bce4f29ce9e177b 443 442 2019-12-24T18:46:41Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/ * scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/ * brainparty: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/ 02385c37177fadd1b95279aa81bd03f329a02e3e Games/Brainparty 0 90 444 2019-12-25T08:44:21Z Wizzup 4 Created page with "http://maemo.org/packages/view/brainparty/ Requires sdlgles from http://git.maemo.org/git/?p=sdlhildon;a=summary Requires brainparty-data from http://maemo.org/packages/view/..." wikitext text/x-wiki http://maemo.org/packages/view/brainparty/ Requires sdlgles from http://git.maemo.org/git/?p=sdlhildon;a=summary Requires brainparty-data from http://maemo.org/packages/view/brainparty-data Someone did a harmattan port: https://github.com/harmattan/brainparty/commits/master This patch will make it at least start, but it might make more sense to look at the harmattan port. <pre> From cfd0f4da38f1db8f73114990f206b7585e4af54d Mon Sep 17 00:00:00 2001 From: Merlijn Wajer <merlijn@wizzup.org> Date: Wed, 25 Dec 2019 09:44:04 +0100 Subject: [PATCH] initial fixes --- BPList.h | 4 ++-- Makefile | 2 +- WordList.h | 2 +- debian/control | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/BPList.h b/BPList.h index 5c986cb..7c47044 100644 --- a/BPList.h +++ b/BPList.h @@ -138,7 +138,7 @@ public: ~BPPList(); void Add(T item); bool Contains(T item); - void Clear(bool safe_delete); + void Clear(bool safe_delete = true); int IndexOf(T item); void Insert(int pos, T item); void Remove(T item); @@ -171,7 +171,7 @@ bool BPPList<T>::Contains(T item) { } template <class T> -void BPPList<T>::Clear(bool safe_delete = true) { +void BPPList<T>::Clear(bool safe_delete) { if (safe_delete) { for (int i = data.size() - 1; i >= 0; --i) { T item = data[i]; diff --git a/Makefile b/Makefile index ae75393..aaaa42e 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ ifeq ($(MACHINE),Darwin) OSXCOMPAT = SDLMain.m else INCLUDES = `sdl-config --cflags` -I/usr/X11R6/include - LIBS = `sdl-config --libs` -lGLES_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image + LIBS = `sdl-config --libs` -lGLESv1_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image CXXFLAGS = -O2 -c -Wno-deprecated OSXCOMPAT = endif diff --git a/WordList.h b/WordList.h index 972764f..6b7bbab 100644 --- a/WordList.h +++ b/WordList.h @@ -35,7 +35,7 @@ namespace __gnu_cxx }; } -typedef hash_set<string, hash<string> > string_hash_set; +typedef hash_set<string> string_hash_set; class WordList { private: diff --git a/debian/control b/debian/control index 7d33aed..6e094be 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: brainparty Section: user/games Priority: extra Maintainer: Thomas Perl <thp@thpinfo.com> -Build-Depends: debhelper (>= 5), libsdl-gles1.2-dev, libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-sgx-img-dev +Build-Depends: debhelper (>= 5), libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-mesa-dev, libsdl-mixer1.2-dev, libsdl-ttf2.0-dev, libsdl-gfx1.2-dev Standards-Version: 3.7.2 XSB-Homepage: http://tuxradar.com/brainparty XSBC-Bugtracker: mailto:thp@thpinfo.com -- 2.23.0 </pre> 956649615ae79b7cb1169f531fe7f025991c3d35 445 444 2019-12-25T08:44:43Z Wizzup 4 wikitext text/x-wiki http://maemo.org/packages/view/brainparty/ Requires sdlgles from http://git.maemo.org/git/?p=sdlhildon;a=summary Requires brainparty-data from http://maemo.org/packages/view/brainparty-data Someone did a harmattan port: https://github.com/harmattan/brainparty/commits/master This patch will make it at least start, but it might make more sense to look at the harmattan port. https://wizzup.org/leste-brainparty.png <pre> From cfd0f4da38f1db8f73114990f206b7585e4af54d Mon Sep 17 00:00:00 2001 From: Merlijn Wajer <merlijn@wizzup.org> Date: Wed, 25 Dec 2019 09:44:04 +0100 Subject: [PATCH] initial fixes --- BPList.h | 4 ++-- Makefile | 2 +- WordList.h | 2 +- debian/control | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/BPList.h b/BPList.h index 5c986cb..7c47044 100644 --- a/BPList.h +++ b/BPList.h @@ -138,7 +138,7 @@ public: ~BPPList(); void Add(T item); bool Contains(T item); - void Clear(bool safe_delete); + void Clear(bool safe_delete = true); int IndexOf(T item); void Insert(int pos, T item); void Remove(T item); @@ -171,7 +171,7 @@ bool BPPList<T>::Contains(T item) { } template <class T> -void BPPList<T>::Clear(bool safe_delete = true) { +void BPPList<T>::Clear(bool safe_delete) { if (safe_delete) { for (int i = data.size() - 1; i >= 0; --i) { T item = data[i]; diff --git a/Makefile b/Makefile index ae75393..aaaa42e 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ ifeq ($(MACHINE),Darwin) OSXCOMPAT = SDLMain.m else INCLUDES = `sdl-config --cflags` -I/usr/X11R6/include - LIBS = `sdl-config --libs` -lGLES_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image + LIBS = `sdl-config --libs` -lGLESv1_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image CXXFLAGS = -O2 -c -Wno-deprecated OSXCOMPAT = endif diff --git a/WordList.h b/WordList.h index 972764f..6b7bbab 100644 --- a/WordList.h +++ b/WordList.h @@ -35,7 +35,7 @@ namespace __gnu_cxx }; } -typedef hash_set<string, hash<string> > string_hash_set; +typedef hash_set<string> string_hash_set; class WordList { private: diff --git a/debian/control b/debian/control index 7d33aed..6e094be 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: brainparty Section: user/games Priority: extra Maintainer: Thomas Perl <thp@thpinfo.com> -Build-Depends: debhelper (>= 5), libsdl-gles1.2-dev, libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-sgx-img-dev +Build-Depends: debhelper (>= 5), libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-mesa-dev, libsdl-mixer1.2-dev, libsdl-ttf2.0-dev, libsdl-gfx1.2-dev Standards-Version: 3.7.2 XSB-Homepage: http://tuxradar.com/brainparty XSBC-Bugtracker: mailto:thp@thpinfo.com -- 2.23.0 </pre> 1c84c7e57e7556bac81cf3df79a829c8aaf73f65 Wishlist 0 89 446 443 2019-12-25T08:45:19Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/ * scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/ * [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/ 57ba62cf00f97fafb633b7118add3bb4ea35c7c1 449 446 2019-12-28T12:43:30Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/ * scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/ * [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/ * Picodrive: Sega emulator (has also Psycho Pinball installable) (User: Maemish) * mSoma or Streamtuner internet radio. (User: Maemish) * PDF reader: * Calendar app: Fremantle default. (User: Maemish) * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). (User: Maemish) * Camera App: BlessN900 (or some other). (User: Maemish) * Image editor: * Mail with imap support: * RSS Feed Reader: * Browser: Dooble? (User: Maemish) * Mediaplayer: 5addae81bb76b7dfa65c4021c8987147b1d2100d 450 449 2019-12-28T17:25:42Z Wasmachineman NL 27 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/ * scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/ * [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/ * Picodrive: Sega emulator (has also Psycho Pinball installable) (User: Maemish) * mSoma or Streamtuner internet radio. (User: Maemish) * PDF reader: * Calendar app: Fremantle default. (User: Maemish) * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). (User: Maemish) * Camera App: BlessN900 (or some other). (User: Maemish) * Image editor: * Mail with imap support: * RSS Feed Reader: * Browser: Dooble? (User: Maemish) * Media Player: Rockbox (User:Wasmachineman NL) 1bebd0881ad91a125d1981ecdeee7ad4834ee3d3 451 450 2019-12-28T18:24:51Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/ * scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/ * [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/ * Picodrive: Sega emulator (has also Psycho Pinball installable) http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ (User: Maemish) * Internet radio: mSoma http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ (User: Maemish) * Cutetube2: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ (User: Maemish) * PDF reader: * Calendar app: Fremantle default. (User: Maemish) * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org /packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) 84f1e71c20fe3d355b73c93af705bdcfb375c661 452 451 2019-12-28T19:08:37Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == * osso-notes: a notes application ([[User:Wizzup]]) * pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/ * scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/ * [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/ * Picodrive: Sega emulator (has also Psycho Pinball installable) http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ (User: Maemish) * Internet radio: mSoma http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ (User: Maemish) * Cutetube2: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ (User: Maemish) * PDF reader: * Calendar app: Fremantle default. (User: Maemish) * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) f7fa1f76b18eb7b91b111c01bf7117192a3df9b8 455 452 2019-12-30T07:58:24Z Wizzup 4 Change some to table layout wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |} * Picodrive: Sega emulator (has also Psycho Pinball installable) http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ (User: Maemish) * Internet radio: mSoma http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ (User: Maemish) * Cutetube2: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ (User: Maemish) * PDF reader: * Calendar app: Fremantle default. (User: Maemish) * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) e6914d2ec118cd4b949332425b235661ad3e70ec 456 455 2019-12-30T07:59:37Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |} * Cutetube2: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ (User: Maemish) * PDF reader: * Calendar app: Fremantle default. (User: Maemish) * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) e0fc4572337bfcc312f0f3047143bef3a8ca9fcd 457 456 2019-12-30T08:01:34Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |} * Calendar app: Fremantle default. (User: Maemish) * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) aa778c942a8c61ed5c0caf507b9bc7a07b05c905 458 457 2019-12-30T08:20:49Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || wiki.maemo.org/Qalendar || Probably Qalender and not fremantle closed |} * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) b9f521ab1ef33a692ebd220530355f1f2ae334bf 459 458 2019-12-30T08:21:08Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalender and not fremantle closed |} * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) b5917d2b6ab95f2e32391af3e248a30382bd441e 460 459 2019-12-30T08:21:23Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed |} * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) 6654fa6b1c23206cf8abc5bedc8f349954fd1221 461 460 2019-12-30T08:21:45Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |} * Alarm clock: Fremantle default. (User: Maemish) * Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish) * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) a56c992f037da21fc26114a6ae9ee8997c9edefd 462 461 2019-12-30T08:26:09Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |} * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) de89c0af93f7ffa2dc527a05b59a77ec9464fe1c 463 462 2019-12-30T08:38:38Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || ? || ? || (User: Maemish) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |} * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) 8c0f3f7c8de6aad0a846a711b83dfde65eadb799 464 463 2019-12-30T08:38:54Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || ? || ? || (User: Maemish) || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |} * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) b1baf870e894ab7c45b551ddc10d70094f9a2e68 465 464 2019-12-30T08:39:45Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name | Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || (User: Maemish) || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |} * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) 82fd6a9aaede0aaa815366c01e807f79ade9e843 466 465 2019-12-30T08:51:40Z Wizzup 4 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || (User: Maemish) || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |} * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) f14b8088d902e0ae9028f09d2daad1d4e113e531 467 466 2019-12-30T08:55:42Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |} * Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish) * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) 2ddf802b96198c262eb2b8b32c107de6db60143c 468 467 2019-12-30T11:39:38Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || Needs to be ported to gst1.0 |} * Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish) * Mail with imap support: (User: Maemish) * RSS Feed Reader: (User: Maemish) * Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish) * Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish) * Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish) * D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish) * Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish) * MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish) * Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish) * Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish) 89b53fd6a0745cc8dd7f8ebcb205ab5cbddb31e6 469 468 2019-12-30T12:09:06Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image wiever/editor: || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || || [[User:Maemish]] || || |- | Browser:Dooble? || No || || [[User:Maemish]] New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || || |- | Mediaplayer: Openmediaplayer || ? || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || [[User:Maemish]] || || |- | Mediaplayer: SMPlayer || No || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.nethttp://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/|| [[User:Maemish]] || || |- | Unzip addon for filemanager || No || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || [[User:Maemish]] || || |- | D-Theme SimpleBlackGreen || No || http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ || [[User:Maemish]] || || |- | Bootscreen: Don't Panic! || No || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || [[User:Maemish]] || || |- | MMS: fMMS || No || https://garage.maemo.org/projects/fmms || [[User:Maemish]] || || |- | Homescreen Dockbar Widget|| No || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || [[User:Maemish]] || || |- | Hotspot: MobileHotspot || No. || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || [[User:Maemish]] || Either this or something else. This has only wep encryption which should be changed. || |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 2a0a9dfb2fcd0074ed52bc975f1705083a1f1146 470 469 2019-12-30T12:22:24Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image wiever/editor: || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Dooble || No ||Browser || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OMP Openmediaplayer || ? || Media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || Media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.nethttp://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ || |- | Unzip addon for filemanager || No || Utility || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || Fashion || [[User:Maemish]] || http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || Fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || Media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || Fashion/Utility || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || Utility || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) b2f956419b6cf2dda51cee9c9f06e1de86830fa7 471 470 2019-12-30T12:28:27Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- |Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image wiever/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras /pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) a5bac63f52e37b95b4109aa2701f6256165e9582 472 471 2019-12-30T12:42:43Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image wiever/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 2677835085b9d5bf7ab24d4b5812db0c43fd57ec 473 472 2019-12-30T18:53:21Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image wiever/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 2c03076211944fa769dfb4dc061e15dde76a317b 474 473 2019-12-30T18:55:17Z Sicelo 5 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) cc7cd5caede028b0402e10841c0cc3db09878e85 475 474 2019-12-31T08:24:03Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | || No || || [[User:]] || || |-|- | || No || || [[User:]] || || |-|- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) d03537d868649304cd9aea681f8cce05e7c914e2 476 475 2019-12-31T08:27:00Z Maemish 26 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |-|- | || No || || [[User:]] || || |-|- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 10394dd927f379feba69a55d3fdbc2f5160b5c37 477 476 2019-12-31T20:08:32Z Ric9k 28 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | || No || || [[User:]] || || |-|- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 746545525957cea19054c4533b25c7d6ac0678e0 478 477 2019-12-31T20:09:01Z Ric9k 28 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | || No || || [[User:]] || || |-|- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 719374ff0051a1ff9cad214f1f4cac7cd97fff4c 479 478 2019-12-31T20:18:31Z Ric9k 28 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 378286769c35ebe6fcff23befa64030bfef4d021 480 479 2020-01-01T12:07:41Z Sicelo 5 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable" ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ || |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 5991711893d0accacbf6b780df4eb51b41b5e95d Games 0 91 447 2019-12-25T10:42:12Z Wizzup 4 Created page with "List of games: * [[Games/Brainparty|Brainparty]]" wikitext text/x-wiki List of games: * [[Games/Brainparty|Brainparty]] 01c308f317116b93f23af03eaa87061c2be0038b Games/Brainparty 0 90 448 445 2019-12-25T13:55:24Z Wizzup 4 wikitext text/x-wiki https://www.youtube.com/watch?v=IlweegA2ORQ http://maemo.org/packages/view/brainparty/ Requires sdlgles from http://git.maemo.org/git/?p=sdlhildon;a=summary Requires brainparty-data from http://maemo.org/packages/view/brainparty-data Someone did a harmattan port: https://github.com/harmattan/brainparty/commits/master This patch will make it at least start, but it might make more sense to look at the harmattan port. https://wizzup.org/leste-brainparty.png <pre> From cfd0f4da38f1db8f73114990f206b7585e4af54d Mon Sep 17 00:00:00 2001 From: Merlijn Wajer <merlijn@wizzup.org> Date: Wed, 25 Dec 2019 09:44:04 +0100 Subject: [PATCH] initial fixes --- BPList.h | 4 ++-- Makefile | 2 +- WordList.h | 2 +- debian/control | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/BPList.h b/BPList.h index 5c986cb..7c47044 100644 --- a/BPList.h +++ b/BPList.h @@ -138,7 +138,7 @@ public: ~BPPList(); void Add(T item); bool Contains(T item); - void Clear(bool safe_delete); + void Clear(bool safe_delete = true); int IndexOf(T item); void Insert(int pos, T item); void Remove(T item); @@ -171,7 +171,7 @@ bool BPPList<T>::Contains(T item) { } template <class T> -void BPPList<T>::Clear(bool safe_delete = true) { +void BPPList<T>::Clear(bool safe_delete) { if (safe_delete) { for (int i = data.size() - 1; i >= 0; --i) { T item = data[i]; diff --git a/Makefile b/Makefile index ae75393..aaaa42e 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ ifeq ($(MACHINE),Darwin) OSXCOMPAT = SDLMain.m else INCLUDES = `sdl-config --cflags` -I/usr/X11R6/include - LIBS = `sdl-config --libs` -lGLES_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image + LIBS = `sdl-config --libs` -lGLESv1_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image CXXFLAGS = -O2 -c -Wno-deprecated OSXCOMPAT = endif diff --git a/WordList.h b/WordList.h index 972764f..6b7bbab 100644 --- a/WordList.h +++ b/WordList.h @@ -35,7 +35,7 @@ namespace __gnu_cxx }; } -typedef hash_set<string, hash<string> > string_hash_set; +typedef hash_set<string> string_hash_set; class WordList { private: diff --git a/debian/control b/debian/control index 7d33aed..6e094be 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: brainparty Section: user/games Priority: extra Maintainer: Thomas Perl <thp@thpinfo.com> -Build-Depends: debhelper (>= 5), libsdl-gles1.2-dev, libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-sgx-img-dev +Build-Depends: debhelper (>= 5), libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-mesa-dev, libsdl-mixer1.2-dev, libsdl-ttf2.0-dev, libsdl-gfx1.2-dev Standards-Version: 3.7.2 XSB-Homepage: http://tuxradar.com/brainparty XSBC-Bugtracker: mailto:thp@thpinfo.com -- 2.23.0 </pre> afe129ce7256bdb05d2723712b6ba7d731ae91d2 Development 0 61 453 381 2019-12-30T07:50:48Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 0e2b8a7975e6d76f421ca1348eda02adb91ad714 454 453 2019-12-30T07:51:00Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 7fadd609e02d2acc703d0c2be95d6c3c56a6cf9a 481 454 2020-01-03T21:43:54Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Multiarch === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in f2ac7a5c9a3ac55ee121c1a30a3ba22a3d67c3cd Development/Tasks 0 92 482 2020-01-03T21:46:29Z Wizzup 4 Created page with "== Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! URLs ! Notes |- | Monitor keyboard slide and attached state || Require..." wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || |- |) 23b201534739da1ee24318db5ff5a54e146a3e57 483 482 2020-01-03T21:47:51Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || |) 79a1d40935f46be4bbb2954389f64f25439c0281 484 483 2020-01-03T21:49:20Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || ? || || |) 43fc556a7689d34b2a4e36ed28022daeaf3650df 485 484 2020-01-03T21:49:26Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || ? || || |) f8ad88aa741062c256a33a6f1600b693fa3c5f6a 486 485 2020-01-03T21:52:05Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- |) 770da3b04c6f3e2cbbb193b5af8eda0f4b6935a4 487 486 2020-01-03T21:53:35Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || || |) 93f9d0b7917b8e2b48a2fe3095b8348a5ed01a62 488 487 2020-01-03T21:55:52Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || [[User:Wizzup]], [[User:Parazyd]] || || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |) be9bdcfa3da4d80949323f132f7d56185d05b482 489 488 2020-01-03T21:58:35Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- |} c1612ab8223db6c58ce7032f01fe9311f4174f9e 490 489 2020-01-03T22:01:35Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- |} 36c2f27b181abd7c38c8724f3f96e17f9b0ec472 491 490 2020-01-03T22:05:59Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- |} c434b1ee1476f1429589ce46538b155577d413ea 492 491 2020-01-03T22:07:40Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} 98db738d0041c51b76f84a577b0fd03d63fd3de9 493 492 2020-01-03T22:09:25Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} fcfa6154562cfe8c7ded610e7a8442b7d340374e 494 493 2020-01-03T22:11:38Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} b6bee101684b270706228792cc29fa1a3fd79a59 495 494 2020-01-03T22:12:40Z Sicelo 5 /* Applications */ wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} 7a3caa5cd4a390de3e56cebd1bc4a9ab8fdd7da1 Development/Tasks 0 92 496 495 2020-01-03T22:17:32Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} fd6e4d21461e691e81c9d2f3103fe095e64ed4b4 497 496 2020-01-03T22:18:10Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} d45365e342dde601b5404e9c8d93287f358bef35 498 497 2020-01-03T22:33:18Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || TODO || || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} 1f1adc303fccd2ae52bbafd54607812ca9f4f3e1 499 498 2020-01-03T22:34:46Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} ce03bba8d22809566c72c880a7f9e24110f996bf 500 499 2020-01-03T22:34:56Z Wizzup 4 wikitext text/x-wiki == Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || || || || |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} f405399c17f5a4fd36ad1a6d8ae44d2ca91305b9 501 500 2020-01-03T22:37:52Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || || || || |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} 91d8eafd93ec5936b0c23c24f5ec476e3aa815f4 502 501 2020-01-03T22:39:54Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} 5648b639bfa67a2b7cc28f2e07d50cc3d3f724f0 503 502 2020-01-04T09:35:01Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- |} 0bc492463224290306ec176b4a38117a150dbdb3 504 503 2020-01-04T11:05:03Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} bc7c4b76cf36d4e1ae3f556733457753342802bc 520 504 2020-01-12T23:21:01Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} 81ce238aa4a5589d53c21ea80f0872cb0ba15ff5 521 520 2020-01-12T23:21:38Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda) |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} ea4f6b85b356765804b7200eb5123113a7971c1a 522 521 2020-01-13T00:30:24Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} 528d6eda2d387c4ac17e0494174c40226320feba 523 522 2020-01-13T19:44:20Z ThomasAH 30 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || [User:ThomasAH] || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} e210551d603ee9b88af88d35e9d9bbad51d72562 524 523 2020-01-13T19:44:59Z ThomasAH 30 /* Applications */ wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || [[User:ThomasAH]] || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} ede35446e3ffc173859acc4d12727e10b4bba338 525 524 2020-01-13T19:47:26Z ThomasAH 30 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || WIP || [[User:ThomasAH]] || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} 315059308234df8719fcd3d7088db574db6364dd PinePhone 0 93 505 2020-01-04T13:37:31Z Wizzup 4 Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb..." wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (development) phone == Notes == == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Modesetting with lima (!) |- | 3D Acceleration || Yes || |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] 2170cb1db8c6309cf5ccbf13875b311893b0bc70 506 505 2020-01-04T13:37:57Z Wizzup 4 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (development) phone == Notes == Screen is 'portrait' by default, phone has no keyboard, Hildon needs more work to work well without a keyboard on portrait. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Modesetting with lima (!) |- | 3D Acceleration || Yes || |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] a5cc203945ec8e5e9bf78e05d146d32fc6d6e713 507 506 2020-01-04T13:38:07Z Wizzup 4 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (development) phone == Notes == Screen is 'portrait' by default, phone has no keyboard, Hildon needs more work to work well without a keyboard on portrait. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting with lima (!) |- | 3D Acceleration || Yes || |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] 49ac8c72fa767ee9ca37d7c622533e0fc6244b7e 508 507 2020-01-04T13:44:39Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (development) phone == Notes == Screen is 'portrait' by default, phone has no keyboard, Hildon needs more work to work well without a keyboard on portrait. Lima-enabled mesa is available in the 'lima' component: https://phoenix.maemo.org/job/mesa-repos/ / https://maedevu.maemo.org/leste/dists/leste/lima/ == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] a39acdd4b27d531594661d4bfb7fc572491b72d6 Status 0 64 509 404 2020-01-04T15:30:33Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || WIP || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/Games|Games & Entertainment]] || WIP || SDL, existing games || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |} 16c6bf9b08889b6ce0c769bcf36ae042565fe528 510 509 2020-01-05T01:24:51Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || WIP || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || WIP || SDL, existing games || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |} 308d2deaadd4c6b29ae1bc5996e0473c5c94334c 518 510 2020-01-12T20:26:14Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || WIP || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |} a58493f65ee64cb6d9448b1fbb8984be0d019ded Development 0 61 511 481 2020-01-05T11:27:25Z Spinal 13 Rename section MultiArch -> CrossCompiling to make it more comprehensive wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === CrossCompiling === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in c7afbc1a93b4a29a8678692733cf52f4597b246b 531 511 2020-01-15T23:39:36Z Spinal 13 /* CrossCompiling */ Rename to Crossbuilding wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in ff0d170768e5296aeb16b32e051d40d3ed4b1fa3 532 531 2020-01-15T23:40:41Z Spinal 13 /* Crossbuilding */ Minor addition wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your powerful PC/Mac/Notebook etc. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 1bd653abf15993105b309cb6a4ecaeb2efd05757 533 532 2020-01-15T23:50:32Z Spinal 13 /* Crossbuilding */ Trying to make this part more understandable wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in ec008606d7f770b5273a0a301f53b6f7f7f34b10 534 533 2020-01-15T23:51:31Z Spinal 13 /* Crossbuilding */ Minor addition wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build some packages on a Debian system. This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 157139a5fafe4fd719278ceb16910ea84d43c665 535 534 2020-01-16T00:01:33Z Spinal 13 /* Crossbuilding */ Make explanations more simple and clear wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. The container can easily be removed later. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 7572a8360cf02d7e24891e2eb62eb6b2db6ff3b7 536 535 2020-01-16T00:03:34Z Spinal 13 /* Crossbuilding */ Change the word order wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. The container can be easily removed later. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later, issue the command: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch If you wish to remove the container, just delete the directory we created: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 20e063c385060f1c2dd07ba21c50ffb6cbad0ad5 537 536 2020-01-16T00:06:08Z Spinal 13 /* Crossbuilding */ Shorten text wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. The container can be easily removed later. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 2dcbd83052408636448ddddb13c19f451b3167a0 538 537 2020-01-16T00:08:58Z Spinal 13 /* Crossbuilding */ Shorten text wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste leste main contrib non-free n900 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 49ee20695176a9f73d05e9fa9552f333a693abcf Wishlist 0 89 512 480 2020-01-05T16:34:19Z Capitannemo 29 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || utilities/phone || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) ab6e1496665ccbbb9b9eca9cfff6c2977e05bbc9 513 512 2020-01-05T16:37:32Z Capitannemo 29 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || utilities/phone || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || utilities/audio || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) fbbaede227d627264fc08af45e88039e6cd8e13c 514 513 2020-01-05T16:46:41Z Capitannemo 29 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || utilities/phone || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || utilities/audio || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || reading/media || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) f6dd50fbf44fba404a88690aa0e9d80dcae7d1a4 515 514 2020-01-06T17:00:19Z Capitannemo 29 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || utilities/phone || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || utilities/audio || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || reading/media || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || | | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 253f013d55cbbbf752d5a6b0547e33dd52cf7072 516 515 2020-01-06T17:05:17Z Capitannemo 29 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || | | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) b0627451e2642a845ff0349a668948f1bae9b3f0 517 516 2020-01-09T07:59:35Z Wizzup 4 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || | | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 7960d666fe83e3437ee578af59cfcfb1c87d5edb 519 517 2020-01-12T22:08:24Z Wizzup 4 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || | | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 0490841609f469a7c35fbdd8cb3f9efc05b8c0c5 529 519 2020-01-15T10:32:00Z Pavel 9 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || | | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 7d2ef17b0ed5b54086d1818b075bf2923f685866 Motorola Droid 4 0 50 526 420 2020-01-14T18:09:23Z Sicelo 5 Update bluetooth info wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB. # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 1f4466b293a6a2270676f5a699363ed07493f745 527 526 2020-01-14T18:28:10Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB. # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] ba4a41e8f0a8b18f428d9dab88b928a1c33e2255 528 527 2020-01-14T18:31:13Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB. # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] eef9947dd52859b1f3e0b8835ef8cfd887991a80 530 528 2020-01-15T21:10:05Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Requirements: * MicroSD card, MicroUSB cable and Droid4 * Charged Droid4 * Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows) * Host Linux or Windows system Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB. # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 3ca41aeac5472d14c0569affedc79a1bd436f3be 539 530 2020-01-17T00:22:44Z Spinal 13 /* Installation using kexecboot */ Rewrite requirements section wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Hardware requirements: * Charged Droid4 * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot and adb * git (optional) * flashing tools: ** xzcat and dd for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB. # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 160c524e69c8caab8f6d199d8ee47167e416e459 540 539 2020-01-17T00:39:00Z Spinal 13 /* Installation using kexecboot */ Minor fixes wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Hardware requirements: * Charged Droid4 * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot and adb * git (optional) * flashing tools: ** xzcat and dd for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer options" in Settings, and enable "USB debugging". # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 5e4f324009ae34e238c1cd71e623bec394520a3a 541 540 2020-01-17T00:54:56Z Spinal 13 /* Installation using kexecboot */ Minor changes wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Hardware requirements: * Charged Droid4 * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot and adb * git (optional) * Flashing tools: ** xz-utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # With the Droid4 booted into Android, go to "Developer options" in Settings, and enable "USB debugging". # Power off Droid4 # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' #* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] ccab950b83da43a73451e89ebad047e39a20a786 542 541 2020-01-17T01:37:38Z Spinal 13 /* Installation using kexecboot */ There's no need to poweroff+poweron the device after enabling "USB debugging". Minor fixes. wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot and adb * git (optional) * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' # With the Droid4 booted into Android, go to "Developer options" in Settings, and enable "USB debugging". # Connect the device to the host machine with MicroUSB cable #* If you have safestrap installed on the device, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''). Run it as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Safestrap+ddroid Installation (no longer recommended and outdated) == ''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card ''' PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki] Flashing the zip file is quite confusing / tricky: Boot options, select slot with Leste, Activate. In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot. Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 69d3d5f46447d2b786fae271b0b63816eb90e2c0 543 542 2020-01-17T04:11:14Z Spinal 13 Remove not recommended and outdated section "Safestrap+ddroid Installation". wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot and adb * git (optional) * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' # With the Droid4 booted into Android, go to "Developer options" in Settings, and enable "USB debugging". # Connect the device to the host machine with MicroUSB cable #* If you have safestrap installed on the device, go to safestrap, reboot, reboot to bootloader #* If you do not have safestrap, issue on the host: '''adb reboot bootloader''' # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''). Run it as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 02e24ff20de86ca1cf4df640425b3f870a575548 544 543 2020-01-17T04:24:08Z Spinal 13 /* Installation using kexecboot */ There's no need in adb tool wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * git (optional) * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' And clone (or download the zip for): * https://github.com/tmlind/droid4-kexecboot.git Installation: # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' # Power off Droid4 and connect the device to the host machine with MicroUSB cable # Now start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''). Run it as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] da5d398b731272a5e07e62ef107c3b2a604fe35b 545 544 2020-01-17T04:28:54Z Spinal 13 /* Installation using kexecboot */ No need in git wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == This procedure will erase existing android and/or safestrap. Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows) # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' # Power off Droid4 and connect the device to the host machine with MicroUSB cable # Now start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. # Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''). Run it as admin/root if it does not find the device # If you get errors while writing the image files, try a better MicroUSB cable. # Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader. Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo): # fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin # fastboot reboot-bootloader # fastboot flash bpsw current/droid4-kexecboot.img # fastboot flash utags utags-mmcblk1p13.bin Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] e5aa4b95aa5ba4aba7795a914ca73b97e5f5b579 Motorola Droid 4 0 50 546 545 2020-01-17T04:38:03Z Spinal 13 /* Installation using kexecboot */ No need to erase existing Android wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz''' Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip''' # Power off Droid4 and connect the device to the host machine with MicroUSB cable # Now start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: # sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin # sudo fastboot reboot-bootloader # sudo fastboot flash bpsw droid4-kexecboot.img # sudo fastboot flash utags utags-mmcblk1p13.bin # sudo fastboot reboot The device should reboot and show kexecboot for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: # '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE''' # '''sync''' On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 9b1266215ec225fd1586c275a22978d5795bbb82 547 546 2020-01-17T04:46:10Z Spinal 13 /* Installation using kexecboot */ Minor fixes wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 36b484be23994f9d6558ea6e18b1cd7e9a449057 548 547 2020-01-17T04:48:33Z Spinal 13 /* Installation using kexecboot */ Minor fixes wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 8eed3e38af057ca54bb77fdc00d98a79165b8867 549 548 2020-01-17T04:56:42Z Spinal 13 /* Notes */ Add instructions for device freezes case wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume button. Your should hold it for about 7 seconds. The device should reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 370f7cd52b333a4da2ae7d2421713600af0ca8ed 550 549 2020-01-17T05:00:44Z Spinal 13 /* Notes */ Minor fixes wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume button. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] a87c559acd4e82ff0e747442b095f60789f2893e 551 550 2020-01-17T05:01:36Z Spinal 13 /* Notes */ Minor fix wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation using kexecboot == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 896842a1aa9b32c4c3d3a0f370126516544826e3 552 551 2020-01-17T05:03:02Z Spinal 13 Rename section "Installation using kexecboot" => "Installation" wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 1bbf852643dbe95471ab4e48d2645fc3d53048fd 553 552 2020-01-17T13:21:17Z Spinal 13 /* Installation */ Fall back to working 20190227 image. Latest image has broken wifi. wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 9c04d6c3895325a2f87904b6a4c0c905c50043c4 554 553 2020-01-17T13:24:49Z Spinal 13 /* Installation */ Don't recommend to use 20200112 image (broken wifi) wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (FIXME: 20200112 image has broken wifi support, don't use it) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] a8acae79e8091b939b84377ced0cccb57d6e57bf 555 554 2020-01-17T14:35:27Z Sicelo 5 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 4f1be26cceace9dbf4d13312548fbae5000677fe 557 555 2020-01-18T13:01:42Z BuZz 32 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] db10e047a4e8ef5fd65cfa7afa9ca90a54bfcf0d 558 557 2020-01-18T13:02:48Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ While using a serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 95ee89017dd432f566f5afcdfb66df18a9448ab0 559 558 2020-01-18T18:22:27Z Sicelo 5 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 45e0afc45036a2b275379fd086fd63c9f4472773 560 559 2020-01-19T11:52:07Z BuZz 32 /* Wifi */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 6c9c55b2021b0b0c613b0d8312b415f84f4ac544 561 560 2020-01-19T11:52:43Z BuZz 32 /* Wifi */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Kernel development (old and outdated) == Linux 4.14 plus patches Status: http://elektranox.org/droid4/ Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches] [[Category:Device]] 32a813dac60e41ad4e3a4422ed50e2e7aee4807a 562 561 2020-01-22T13:06:55Z Derby 3 Remove redundant kernel info; add link to kernel branch currently in use wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. [[Category:Device]] 3ba5bf348186af06308de7d4f91dfa63ee7b8866 563 562 2020-01-22T13:14:23Z Derby 3 Move sections to a more logical order wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires special cable |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> [[Category:Device]] 58f871c653e37165f0f6a94dc24c0aa7848c4a3f 564 563 2020-01-22T13:17:52Z Derby 3 /* Status */ Add link to Serial Cable section wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> [[Category:Device]] f238dd399ba8396c536d9af089fa179d73da2016 565 564 2020-01-22T13:28:23Z Derby 3 /* Status */ SGX info wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code> |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === BT === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> [[Category:Device]] bbcae18cb6a640ec296e46e70fdd390749ffea01 566 565 2020-01-22T13:40:13Z Derby 3 Bluetooth info wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> [[Category:Device]] c3de9ddb1f305bad50835805f139003f6fe3d2dd 567 566 2020-01-22T13:50:44Z Derby 3 /* Status */ Compass wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> [[Category:Device]] 4addcaba92e147681e8ba2c3d3f642272bb8d225 568 567 2020-01-25T20:29:48Z BuZz 32 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> [[Category:Device]] 79e3bedf1bf89e76126bb5c58336a294d8403e5d 570 568 2020-01-25T20:31:23Z BuZz 32 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg </gallery> [[Category:Device]] c53d5ebb6488db9f5916f377874a23cbe164d0c2 572 570 2020-01-26T16:34:46Z BuZz 32 /* Gallery */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG </gallery> [[Category:Device]] 7f501e779d7af159fa8cdf58faf31143a3de53fa 588 572 2020-01-27T07:34:25Z Xsetiadi 33 /* Gallery */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg </gallery> [[Category:Device]] bee4fe374c5c2bdcac77f27f77b22f9f022a82bf 592 588 2020-01-28T06:14:38Z Xsetiadi 33 /* Gallery */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 4dc94b55d6f4ff70a519745b58888119a40bedd2 Nokia N900 0 48 556 441 2020-01-18T11:02:35Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] d4a954c79fbb9c6c35be0658e88e8fbaa7ced9bd File:Motorola-Droid4-20200125.jpeg 6 94 569 2020-01-25T20:31:08Z BuZz 32 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Droid4-neofetch.JPG 6 95 571 2020-01-26T16:23:18Z BuZz 32 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Leste FAQ 0 62 573 364 2020-01-26T18:31:44Z Derby 3 /* How does Maemo Leste compare with PureOS? */ Update info on Librem 5 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are packages (for N900 especially) Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb a6e51a8cf044600ff74ab9c4de10691cfbb2b284 574 573 2020-01-26T18:34:39Z Derby 3 /* Does Maemo Leste use Halium? */ Fix typo wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are packages (for N900 especially) Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 0fc24b9f0eec0ba6bda81e5e8bf8aef34d055d35 575 574 2020-01-26T18:55:56Z Derby 3 Added question on Debian/systemd compatibility wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are packages (for N900 especially) Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb d24c86423dedfe322d29edea1ab42c7cc0779d5a 576 575 2020-01-26T19:47:57Z Derby 3 /* Are there any technical merits in using System V init with OpenRC instead of systemd? */ Reinforce the importance of choosing Devuan over Debian. wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are packages (for N900 especially) Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb c877977495f406a80ee188d15efb5ab216bfb764 577 576 2020-01-26T19:58:35Z Derby 3 /* Are there any technical merits in using System V init with OpenRC instead of systemd? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) Linux kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are packages (for N900 especially) Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 03ee2ebb25e8962352a35e18b3db76d4b7990862 578 577 2020-01-26T20:08:08Z Derby 3 /* What's wrong with Android (vendor) kernels? */ Android kernels diverge so much (breaking compatibility), that it is incorrect to call them Linux wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are packages (for N900 especially) Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb aef310e2940b7d427db1c035d2ba8949dfea5c57 579 578 2020-01-26T20:09:44Z Derby 3 /* What's wrong with Android (vendor) kernels? */ Rephrase wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are packages (for N900 especially) Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb ed6fad2bae48eafccdf19ac7f4cf65c735c9a17f 580 579 2020-01-26T20:11:36Z Derby 3 /* Are packages (for N900 especially) Thumb-compiled? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticable in the project). Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts. But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 1771262e599ab18ffa92e2f23efc8d80bd25b13c 581 580 2020-01-26T20:24:44Z Derby 3 /* Why is Maemo Leste based on Devuan rather than Debian? */ Fix typo; rephrase; Devuan upstart support was dropped in ascii. wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb addc3773f5666399a5543c2296ec0356a19af6e2 582 581 2020-01-26T20:34:56Z Derby 3 /* How about other popular non-Android mobile Linux distributions? */ Rephrase wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs. Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone. The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs. Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 5b94e746ac091d2240a57e976f340cc7950c4aa8 583 582 2020-01-26T22:31:47Z Derby 3 /* What is Maemo Leste? */ Improve wording; add hyperlinks. wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 9844ed1b2d72d1cf7e0f8b8df5e0ca8a1fe82f14 584 583 2020-01-26T22:32:13Z Derby 3 /* What is Maemo Leste? */ Fix typo wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 943c285acf6c767534d39d48eb0db795507f57ab 585 584 2020-01-26T22:55:19Z Derby 3 /* Why is Maemo Leste based on Devuan rather than Debian? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb c2fb2913038f8cd8b043a8355d42600920305d04 586 585 2020-01-26T22:57:45Z Derby 3 /* Why is Maemo Leste based on Devuan rather than Debian? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS. We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla"). === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 343facfa00b0e836b8715e1c37095c8a8d786680 File:Droid4 htop.jpg 6 96 587 2020-01-27T07:34:08Z Xsetiadi 33 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Architecture 0 97 589 2020-01-27T14:02:21Z Eloy 34 Initial page wikitext text/x-wiki == Application interfaces == == UI Framework == == Location framework == == Data management == == Real-time communications == == Toolkit == == Multimedia framework == == Connectivity framework == == Cellular == == Core == == System software == == Hardware == e7255b3430e970bb381edf752e37e5bd854aafa8 Development/Porting Packages 0 82 590 385 2020-01-28T03:12:29Z Derby 3 Add a placeholder that will be used to describe the procedure for forking a Debian/Devuan package wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) 1482e4bb81cafbe283fc33d7c9b9b65273a47e41 File:Droid4 leste logo.jpg 6 98 591 2020-01-28T06:14:17Z Xsetiadi 33 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Main Page 0 1 593 436 2020-01-30T12:48:25Z Halftux 7 /* Links */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://leste.maemo.org/index.php?title=Wishlist&action=edit&redlink=1 https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 983dc8f50e44200e73313eae3ffed7aa5ae38fdc 594 593 2020-01-30T12:51:57Z Halftux 7 /* Links */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://leste.maemo.org/index.php?title=Wishlist&action=edit&redlink=1 https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Links = <div> *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192. </div> *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] 86fe22c6122deb9dddc5649de23ff49bef7e2e0a 595 594 2020-01-30T13:03:16Z Halftux 7 /* Links */ irc history wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://leste.maemo.org/index.php?title=Wishlist&action=edit&redlink=1 https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Links = <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 288437e8e64dbed5ec4985911de0e1c3587dff02 Main Page 0 1 596 595 2020-02-01T04:49:15Z Derby 3 /* Project milestones */ The wishlist already has it's own section wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Links = <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 86eb5a18bf01c5fbbc1978469e7f83b403ceceda 597 596 2020-02-01T07:11:52Z Derby 3 /* Links */ Add YouTube channel wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Links = <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 38e3c5d23f6506e8e2978500685604f61a1f9a4a 599 597 2020-02-01T16:28:08Z Derby 3 Add link to new Talks page wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. Also see our [[Leste_FAQ|FAQ]]. = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Talks = See [[Talks]] = Links = <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 782582928008aee2022aa780183987cf1cde0a83 600 599 2020-02-01T16:30:47Z Derby 3 Give the FAQ a heading wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. = Frequently Asked Questions = See [[Leste_FAQ|FAQ]] = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Talks = See [[Talks]] = Links = <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 7022669f8e049547e108b699f6a9b9fb63770523 Talks 0 99 598 2020-02-01T16:25:43Z Derby 3 Maemo Leste talks at various events wikitext text/x-wiki == FOSDEM 2020 - Freedom Main Track - 2nd February 2020 == '''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)'' [https://fosdem.org/2020/schedule/event/smartphones/ Event info] Video: [https://live.fosdem.org/watch/janson Live stream at 15:00 CET] == OpenFest 2019 - 2nd November 2019== '''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)'' [https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info] Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious]) == OpenAlt 2019 - 2nd November 2019 == '''Debian v kapse''' - ''Pavel Machek'' [https://openalt.cz/2019/program_detail.php#event_32 Event info] == Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 == '''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)'' Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious]) == FOSDEM 2019 - Lightning Talk - 2nd February 2019 == '''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)'' [https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info] Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4] [https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides] == OpenFest 2018 - 4th November 2018 == '''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)'' [https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info] Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM] [https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides] == OpenAlt 2018 - 3rd November 2018 == '''Maemo Leste - Debian do kapsy''' - ''Pavel Machek'' [https://openalt.cz/2018/program_detail.php#event_14 Event info] Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious]) [https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides] 08533b66f02e124fa0749fe778c6e0dcfd7e0c3c 613 598 2020-02-02T15:01:52Z Derby 3 /* FOSDEM 2020 - Freedom Main Track - 2nd February 2020 */ Live stream is over wikitext text/x-wiki == FOSDEM 2020 - Freedom Main Track - 2nd February 2020 == '''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)'' [https://fosdem.org/2020/schedule/event/smartphones/ Event info] Video: Coming soon == OpenFest 2019 - 2nd November 2019== '''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)'' [https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info] Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious]) == OpenAlt 2019 - 2nd November 2019 == '''Debian v kapse''' - ''Pavel Machek'' [https://openalt.cz/2019/program_detail.php#event_32 Event info] == Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 == '''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)'' Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious]) == FOSDEM 2019 - Lightning Talk - 2nd February 2019 == '''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)'' [https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info] Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4] [https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides] == OpenFest 2018 - 4th November 2018 == '''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)'' [https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info] Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM] [https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides] == OpenAlt 2018 - 3rd November 2018 == '''Maemo Leste - Debian do kapsy''' - ''Pavel Machek'' [https://openalt.cz/2018/program_detail.php#event_14 Event info] Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious]) [https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides] eb5415178bb7131015d2cd06c14ec030be42ad5e 615 613 2020-02-03T19:23:13Z Derby 3 /* FOSDEM 2020 - Freedom Main Track - 2nd February 2020 */ FOSDEM 2020 videos are now up wikitext text/x-wiki == FOSDEM 2020 - Freedom Main Track - 2nd February 2020 == '''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)'' [https://fosdem.org/2020/schedule/event/smartphones/ Event info] Video: [https://video.fosdem.org/2020/Janson/smartphones.webm WebM/VP9], [https://video.fosdem.org/2020/Janson/smartphones.mp4 MP4] == OpenFest 2019 - 2nd November 2019== '''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)'' [https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info] Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious]) == OpenAlt 2019 - 2nd November 2019 == '''Debian v kapse''' - ''Pavel Machek'' [https://openalt.cz/2019/program_detail.php#event_32 Event info] == Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 == '''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)'' Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious]) == FOSDEM 2019 - Lightning Talk - 2nd February 2019 == '''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)'' [https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info] Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4] [https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides] == OpenFest 2018 - 4th November 2018 == '''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)'' [https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info] Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM] [https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides] == OpenAlt 2018 - 3rd November 2018 == '''Maemo Leste - Debian do kapsy''' - ''Pavel Machek'' [https://openalt.cz/2018/program_detail.php#event_14 Event info] Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious]) [https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides] beae4a8b1c3c86cf19b145dd628ea9c8d8e39fb2 Leste FAQ 0 62 601 586 2020-02-02T02:01:22Z Derby 3 /* Why do we need another mobile operating system? */ Improve answer wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb b60483bb781819e247d4c5e8fcf5ff8f33e54c57 602 601 2020-02-02T02:03:08Z Derby 3 /* Does Maemo Leste use Halium? */ Fix link wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 31aa2753a9c6abd9d45830d3db50fde009438b83 603 602 2020-02-02T02:05:41Z Derby 3 /* What's wrong with Android (vendor) kernels? */ Improve wording wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb d7c881e444deca0e4c25594601a447c063114828 604 603 2020-02-02T02:07:06Z Derby 3 /* What is mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 8780eee998e4a8f6de67293d4f6a5f8acb2d3ee0 605 604 2020-02-02T03:00:55Z Derby 3 Add "Does Maemo Leste run with pure mainline Linux?" question wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb a4fb7ff3eae828754ea3813e6bce36b7723a6d67 606 605 2020-02-02T03:47:52Z Derby 3 Add "Is Maemo Leste completely free?" question wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb eb9da47b7c7c3185c61687b84ad8c7bf05e6fc25 607 606 2020-02-02T03:50:42Z Derby 3 Paragraph consistency wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 92737e3598dd8675a48086b3114d73da78df9c7d 608 607 2020-02-02T04:28:49Z Derby 3 /* Does Maemo Leste run with pure mainline Linux? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 64ffe46c0f1aff53bf02f090992a0a92a3129cd3 609 608 2020-02-02T05:29:57Z Derby 3 /* What is Maemo Leste? */ Add paragragh explaining the benefits of building on top of Devuan compared to Fremantle wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb b838803e88248460a89c2a4e7dc1b1fae9e6b40a 610 609 2020-02-02T06:19:18Z Derby 3 Add "Can I use Maemo Leste with musl?" question wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb d60f4bc4dcb8c179c6bb9cf15e45547541e7932d 611 610 2020-02-02T14:45:36Z Derby 3 /* Is Maemo Leste completely free? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 9d78866ee0d1dec170333b162eaaaed89f74c15f 612 611 2020-02-02T14:55:00Z Derby 3 /* What is Maemo Leste? */ Add comment on available upstream packages wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 0b74aedc82d94bf6672aa6e5bc560d408cb5e0c8 614 612 2020-02-02T16:01:38Z Derby 3 /* Does Maemo Leste use Halium? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb d457be4876c6508a7be05627b9c105f7587a02ee 626 614 2020-02-17T13:35:21Z Derby 3 /* How about other popular non-Android mobile Linux distributions? */ Fix broken link wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 6f4c0ab5645df99f74afbc3a1dc718b21d0fb13c 630 626 2020-02-19T13:20:13Z Derby 3 /* Does Maemo Leste run with pure mainline Linux? */ Improve wording as "running" is already possible. wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 13f10f5e5ed27435453916c34c6909583981f9b0 631 630 2020-02-20T02:44:22Z Derby 3 /* What devices does Maemo Leste work on? */ Fix punctuation wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 01a3b140a3b85f34cc70257f895626c88cefe106 Development/Tasks 0 92 616 525 2020-02-04T10:55:59Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || WIP || [[User:ThomasAH]] || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} 97f2cbad8116452501fb25f4b881e6d039ace35f 617 616 2020-02-04T10:57:21Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || MOSTLY DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} 76abd76257da77898f9b014ff30f9ba2211c6846 Motorola Droid 4 0 50 618 592 2020-02-05T03:32:57Z Spinal 13 /* Wifi */ Bluetooth firmware is also required for WiFi wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity Installing Bluetooth firmware in order to have working Wi-Fi is also required. === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 5dd19b53fe859405c087df2c4534e7a0d45ada2e 619 618 2020-02-05T17:31:28Z BuZz 32 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Now go to the working directory and run: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity Installing Bluetooth firmware in order to have working Wi-Fi is also required. === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 4df5cabe58437f4e6e98e87a9b4d75347502c37a 621 619 2020-02-13T20:45:50Z Spinal 13 /* Installation */ Add "Updating Android" back wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity Installing Bluetooth firmware in order to have working Wi-Fi is also required. === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] f177b2ab99f6594d898bca3a640f5b0d948665d9 622 621 2020-02-14T19:13:30Z Spinal 13 /* Postinstall notes for 20200112 image */ Add the link to the issue which describes common problems and their solutions wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == The image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity Installing Bluetooth firmware in order to have working Wi-Fi is also required. === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 66d56f85fc6d55997e0ab65d56d5b97ba7661c84 623 622 2020-02-14T19:22:28Z Spinal 13 /* Postinstall notes for 20200112 image */ Update bluetooth + wifi info wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == Current image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" > /etc/modprobe.d/blacklist.conf === Sound === This needs to be executed after each boot by hand ; modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] a71408f9cd26e19a87acd949e2c9866a4ffb1581 624 623 2020-02-14T19:24:40Z Spinal 13 /* Sound */ Minor fixes wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == Current image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" > /etc/modprobe.d/blacklist.conf === Sound === This needs to be executed to enable the sound: modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] ad0615ff9eba6f14e89046d3df59e215ddd7f432 627 624 2020-02-17T14:03:16Z Wizzup 4 /* Bluetooth */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == Current image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf === Sound === This needs to be executed to enable the sound: modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] ab13e66c00a6da9c31016df9074ccc507a2075c2 628 627 2020-02-17T14:03:53Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4 |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || WIP || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]] |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == Current image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf === Sound === This needs to be executed to enable the sound: modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] f481d0d18698166d3cc3649d3106092dee808622 Nokia N900 0 48 620 556 2020-02-07T11:02:25Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Not yet || Should work in kernel, didn't get it to work yet |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 11b6ec1669d02d106c6dd5d95f691e5d962b526e 639 620 2020-03-01T02:14:44Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with xrandr (xrandr --output TV --mode 800x480 --same-as LCD). Set PAL/NTSC with "xrandr --output TV --set SignalProperties PAL", and scale with "randr --output TV --set TVScale 90" |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] dca3ed078cb71923e88963b3d3e83babeb21d4fc 640 639 2020-03-01T02:17:40Z Wizzup 4 Use code tags for xrandr in TV out wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>randr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 215b457b9ab0be6e73b8ec2df8ef609abaa06afd 641 640 2020-03-01T02:17:52Z Wizzup 4 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 8c2c6a9d32b5d61325801c3713e2ca81fbb858cd Wishlist 0 89 625 529 2020-02-16T20:24:48Z Sicelo 5 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || | | || No || || [[User:]] || || |- | || No || || [[User:]] || || |) 1416f16061430971e555f40c43f21cce11383744 Motorola Droid 4/PowerVR 0 68 629 245 2020-02-17T14:05:20Z Wizzup 4 wikitext text/x-wiki {{Stub}} '''THIS PAGE IS OUT OF DATE IN MANY REGARDS, PLEASE SEE https://github.com/openpvrsgx-devgroup AND http://lists.letux.org/pipermail/openpvrsgx-devgroup/''' This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux. According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders). The last SDK with X11 support (DRI/DRM Xorg driver) is 4.10.00.01. Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it: https://nl.mouser.com/new/pandaboardorg/pandaboardES/ Ubuntu resources: https://wiki.ubuntu.com/ARM/OmapDesktopInstall https://wiki.ubuntu.com/ARM/OMAP https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers Ubuntu kernel module mirror: https://github.com/mobiaqua/pvr-omap4-dkms Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ; There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort. Some notes from irc: <pre> 20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR 20:57 < Wizzup> feel free to add ideas, links/resources, etc 21:37 < NeKit> edited page a bit 21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why 21:39 < Wizzup> for what, for xorg or the older omap 21:40 < Wizzup> or sgx :) 21:40 < Wizzup> (all these names confuse me) 21:40 < NeKit> SGX540 21:42 < Wizzup> we should also involve nikolaus perhaps 21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x 21:42 < Wizzup> ah, ok, I didn't realise it had that core 21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in table 21:44 < Wizzup> what sgx does n900 have? I don't even remember 21:44 < NeKit> SGX530, not sure for core revision 21:44 < Wizzup> ok 21:44 < NeKit> N9/N950 is also SGX530 21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd 21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN 21:47 < Wizzup> this is last non internal - http://processors.wiki.ti.com/index.php/RN_4_04_00_03?keyMatch=SGX540&tisearch=Search-EN 21:50 < Wizzup> not sure why it was dropped :) 21:51 < Wizzup> SDOCM00085667 - Removal of non supported/deprecated devices - OMAP35x with SGX Core 1.0.3(OMAPES=2.x while building) and AM45x(Panda board- OMAPES=7.x) 21:51 < Wizzup> here: http://processors.wiki.ti.com/index.php/RN_4_05_00_01?keyMatch=panda&tisearch=Search-EN </pre> Wizzup plans to take the following steps: 1. Boot mainline on pandaboard 2. Boot latest ubuntu pvr supported kernel on pandaboard 3. See if https://github.com/TexasInstruments/dri3wsegl works on latest ubuntu pvr kernel - if not, ouch 4. See if there are newer releases from ti (kernel and userspace) that might work 5. Port to mainline 6. See if it works on droid4 7. See if various mainline forward ports can be merged (Nikolaus' work) All of this is assuming omapdrmfb, not omapfb 8903f39970178f04de483e934b06ff113ed7d84d PinePhone 0 93 632 508 2020-02-22T17:24:45Z Wizzup 4 WIP wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == First testing image can be found here: (TODO) What you can do with this image: * Run any applications in Debian and Devuan on your phone * Connect to wifi * (With not yet finished userspace) connect to 2G/3G/4G data connections * Develop for Maemo Leste and work on applications that interface with modems Note that: * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Screen brightness adjustments in UI do not work on the Pinephone yet. * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] 6d8e2ad7291a64215f945ba83d1c319f10a27525 633 632 2020-02-22T17:25:33Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == First testing image can be found here: (TODO) What you can do with this image: * Run any applications in Debian and Devuan on your phone * Connect to wifi * (With not yet finished userspace) connect to 2G/3G/4G data connections * Develop for Maemo Leste and work on applications that interface with modems Note that: * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now. * Screen brightness adjustments in UI do not work on the Pinephone yet. * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] 2f1b7550848a1181777ac23fb23baa22d8e03e4b 634 633 2020-02-22T17:28:32Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == First testing image can be found here: (TODO) What you can do with this image: * Run any applications in Debian and Devuan on your phone * Connect to wifi * (With not yet finished userspace) connect to 2G/3G/4G data connections * Develop for Maemo Leste and work on applications that interface with modems TODO mention/link to: * usb peripheral * Note that: * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now. * Screen brightness adjustments in UI do not work on the Pinephone yet. * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * many "games" packages in the Application Manager don't work well yet == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] 280599047c12f101c6a20880321a829fbbb2f2c6 635 634 2020-02-23T21:09:13Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == First testing image can be found here: (TODO) What you can do with this image: * Run any applications in Debian and Devuan on your phone * Connect to wifi * (With not yet finished userspace) connect to 2G/3G/4G data connections * Develop for Maemo Leste and work on applications that interface with modems TODO mention/link to: * usb peripheral * Note that: * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now. * Screen brightness adjustments in UI do not work on the Pinephone yet. * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * many "games" packages in the Application Manager don't work well yet * For some reason the X cursor is still shows (usually it's hidden) == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] c6bb57d606747f6b78ae859fde4695205e99aa7e 638 635 2020-02-23T22:04:53Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == First testing image can be found here: (TODO) What you can do with this image: * Run any applications in Debian and Devuan on your phone * Connect to wifi * (With not yet finished userspace) connect to 2G/3G/4G data connections * Develop for Maemo Leste and work on applications that interface with modems TODO mention/link to: * usb peripheral * Note that: * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now. * Screen brightness adjustments in UI do not work on the Pinephone yet. * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * many "games" packages in the Application Manager don't work well yet * For some reason the X cursor is still shows (usually it's hidden) == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] 9321d95ec2534308c7a9a7b53331ad9f86a71793 642 638 2020-03-01T20:14:01Z Buffer 35 /* Notes */ ported feedback from pine64 wiki (not yet formatted) wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == First testing image can be found here: (TODO) What you can do with this image: * Run any applications in Debian and Devuan on your phone * Connect to wifi * (With not yet finished userspace) connect to 2G/3G/4G data connections * Develop for Maemo Leste and work on applications that interface with modems TODO mention/link to: * usb peripheral * Note that: * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now. * Screen brightness adjustments in UI do not work on the Pinephone yet. * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * many "games" packages in the Application Manager don't work well yet * For some reason the X cursor is still shows (usually it's hidden) A few remarks based on the 20200223 build: Default virtual keyboard currently only works with gtk2 applications(not yet in gtk3 and qt, but this is coming) Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. WiFi and terminal work. Screen brightness adjustments in UI does not work. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with command. e.g. "xrandr --output DSI-1 --brightness 0.5" There is rendering bug so default desktop orientation is landscape (xrandr -o right). Please note that if orientation is changed (e.g. with "xrandr -o normal") the ui will still be reading original key positions." == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] 3804a1bce9fdf50c5e187cbcdcde60a3ff04b3db 643 642 2020-03-01T20:32:30Z Buffer 35 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] e63409dd49002ea76e2a90fc6f5e0260086a2214 644 643 2020-03-01T20:33:08Z Buffer 35 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == [[Category:Device]] ebe5f8bdd831d76b03122367028021ce6a2cca5f Status/USB Peripheral 0 73 636 415 2020-02-23T21:46:51Z Wizzup 4 wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Bringing up network on your PC == After plugging USB from your device into your PC, issue: <pre> ifconfig usb0 up 192.168.42.1 ssh root@192.168.42.2 </pre> == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: The default password is <code>toor</code>. And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code> Now your Leste device should be able to use your PC network == Notes == * The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code> 77784db17ae3bbbd258e1eb2ad4ffa0c97409029 637 636 2020-02-23T21:47:15Z Wizzup 4 wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Bringing up network on your PC == After plugging USB from your device into your PC, issue: <pre> ifconfig usb0 up 192.168.42.1 ssh root@192.168.42.2 </pre> == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: The default password is <code>toor</code>. (user: <code>root</code>) And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code> Now your Leste device should be able to use your PC network == Notes == * The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code> a9b9aab73e1e7c52374d91ec733e6d34b5ae3b93 Virtual Machine 0 60 645 423 2020-03-02T18:49:23Z Wizzup 4 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 === Real hardware === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format. $ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz $ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw The raw image that it yields, can then be setup as a loopback device, and its partitions mounted. # losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw # mkdir /mnt/maemo-virt # mount /dev/loop0p1 /mnt/maemo-virt Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well. # cfdisk /dev/sdb # ... # mkfs.ext4 /dev/sdb1 # mkdir /mnt/maemo-bare # mount /dev/sdb1 /mnt/maemo-bare Change directory to the loop partition, the copy over its contents into the bare metal partition. # cd /mnt/maemo-virt # rsync -aAHXv * /mnt/maemo-bare Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root. # mount --bind /dev /mnt/maemo-bare/dev # mount --bind /proc /mnt/maemo-bare/proc # mount --bind /sys /mnt/maemo-bare/sys # chroot /mnt/maemo-bare /bin/bash Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file. # . /etc/profile # grub-install /dev/sdb # grub-mkconfig -o /boot/grub/grub.cfg After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation. # umount /mnt/maemo-virt # umount -AR /mnt/maemo-bare # reboot == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] fa3d2cb58d23328c1458492103cae03ec59c57bc Status 0 64 646 518 2020-03-02T18:52:15Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |} 64a0eaa3a2ec5499a95a0bb31700641feff21944 Wishlist 0 89 647 625 2020-03-02T21:48:03Z Buffer 35 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || No || || [[User:Maemish]] || || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |) f922c7ff82cdfd45693611166d1f4d14ae736afc Image Builder 0 100 648 2020-03-03T00:01:24Z Buffer 35 document image building procedure wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == # Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre> # In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ ./init.sh # (only needed on first run) $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_image_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * rock64 * pinephone-dontbeevil * sunxi * turbox-twister 0d81a27d0f2d4d4300dcb8ed708fdec28e660768 649 648 2020-03-03T00:05:47Z Buffer 35 /* How to build your own images */ wikitext text/x-wiki = How to build your own images = ===[https://github.com/maemo-leste/image-builder Github]=== == Maemo 7 Leste == # Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre> # In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ ./init.sh # (only needed on first run) $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_image_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * rock64 * pinephone-dontbeevil * sunxi * turbox-twister 6650556621c36b1c68b54ed14c07360b224b32e9 650 649 2020-03-03T00:06:19Z Buffer 35 /* How to build your own images */ wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == ===[https://github.com/maemo-leste/image-builder Github]=== # Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre> # In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ ./init.sh # (only needed on first run) $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_image_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * rock64 * pinephone-dontbeevil * sunxi * turbox-twister 2e4b706d4fbb877e362e2ed8775f4f679390c901 651 650 2020-03-03T00:07:18Z Buffer 35 /* Github */ wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == '''[https://github.com/maemo-leste/image-builder Github]''' # Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre> # In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ ./init.sh # (only needed on first run) $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_image_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * rock64 * pinephone-dontbeevil * sunxi * turbox-twister 1e4a1c383219617816f427051c001162f3ca05a5 Development 0 61 652 538 2020-03-03T00:39:00Z Spinal 13 /* Crossbuilding */ Update for new repository schema wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j4 -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in c68359da0950b5b63dacd0626b603cd9f9866ea1 653 652 2020-03-03T00:49:08Z Spinal 13 /* Crossbuilding */ Don't hardcode jobs count for the package building example wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 JOBS=$(grep processor /proc/cpuinfo | wc -l) && apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in f8a81147af44e186a4275e1cd5f5daa3f853b9c3 654 653 2020-03-03T00:52:13Z Spinal 13 /* Crossbuilding */ Move jobs count calculation to .bashrc wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 46d4e25ebba633613a19bce268e8b32ca23bf634 687 654 2020-03-06T17:08:29Z Spinal 13 /* Guides */ Add link to Maemo 5 developer guide wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch. * Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 0b3da235366b1be18ee6064e7b63bf2bf5c05b75 Main Page 0 1 655 600 2020-03-03T14:00:16Z Halftux 7 /* Links */ added rss feed link wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. = Frequently Asked Questions = See [[Leste_FAQ|FAQ]] = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Talks = See [[Talks]] = Links = <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 35e8c716df1ebdf20df6df73157c7a86f0ed7ff3 Development/Building Packages 0 80 656 383 2020-03-03T21:06:54Z Parazyd 1 Update for new repository structure wikitext text/x-wiki = How you can build package = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you) You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. 8f51670ff4e0ec59fd34d3b240d02618f62746ee 657 656 2020-03-03T21:08:28Z Parazyd 1 Typo fix wikitext text/x-wiki = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you) You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. 01d0864f0faccef67146980ad6fd84745db29655 658 657 2020-03-03T21:20:40Z Parazyd 1 Add maintenance workflow instructions wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i> Once tagged, push the tag to git. == gbp.conf === Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you) You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. e93393e872638a9eed6aadbb70321e0031507f89 659 658 2020-03-03T21:23:27Z Parazyd 1 Typo fix wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i> Once tagged, push the tag to git. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you) You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. 02ef33ba0e14680c6b9e27e2988bfac2e5b6a4d8 660 659 2020-03-03T21:23:48Z Parazyd 1 /* The git tag */ wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you) You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. 8804d2fc9b690473a1dc3af8f661f25da7cf3a0b 661 660 2020-03-03T21:29:53Z Parazyd 1 Add extras stub wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you) You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. 84c48c42ac3c4eca2ae9f1406a920cd913d56129 662 661 2020-03-04T03:54:43Z Spinal 13 /* How you can build packages */ Add instruction to help installing build deps automatically wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory) #. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you). To install build deps automatically: <code>sudo apt-get build-dep <PACKAGE_DIR></code> You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. 2770831ce56963920285042d28130d48ea0215e8 663 662 2020-03-04T03:56:33Z Spinal 13 /* How you can build packages */ Change order: first install build deps, then build the package wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''. #. Install build dependencies (run from source directory): <code>sudo apt-get build-dep .</code> #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb'''. Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. b3da7d53779890615a2888e5eab356767c073ea1 664 663 2020-03-04T03:57:44Z Spinal 13 /* How you can build packages */ Fix formatting wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. 20459118d6c8d672a834d4090969fd2b1806e8fc 665 664 2020-03-04T04:01:58Z Spinal 13 /* The git tag */ Package epoch should be omitted too wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. a5219efe10f929077d8c16a46f960f0669df94c6 666 665 2020-03-04T04:02:34Z Spinal 13 /* The git tag */ Minor fix wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. f859018092f5360f293028b0587846bf266b86a6 667 666 2020-03-04T04:08:42Z Spinal 13 /* How packages are built using Jenkins */ Fix maemo/ascii-devel branch description wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - optional branch for Devuan Ascii with unstable/testing version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. c0524fcf649ff7b19a70314d853ea5324be33033 PinePhone 0 93 668 644 2020-03-04T04:24:52Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == Unlike most phones, it's pretty simple. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. Then insert SD card, replace the back cover, and turn it on. [[Category:Device]] 5e07c4d40791fd05e1d2e4679304d112f1ab9ca0 669 668 2020-03-04T04:36:32Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == Unlike most phones, it's pretty simple. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. dd bs=4M if=2020-02-13-raspbian-buster.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. [[Category:Device]] db208f895c5e135db0cba55840b40aa301bb35f5 670 669 2020-03-04T04:46:18Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: cat /path/to/image/maemo-leste-*-arm64-pinephone-*.img.sha sha256sum /path/to/image/maemo-leste-*-arm64-pinephone-*.img.*z Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. [[Category:Device]] 95a2918bddcde4dc71685afd9121ac613abc57a2 671 670 2020-03-04T04:59:04Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: cat /path/to/image/maemo-leste-*-arm64-pinephone-*.img.sha sha256sum /path/to/image/maemo-leste-*-arm64-pinephone-*.img.*z Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. [[Category:Device]] 45abc20665bd97578ece52408e657bf15bd11bbb 672 671 2020-03-04T05:00:06Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.*z Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. [[Category:Device]] a5776a051a50df71053b3b8f5e9a8eec63508675 673 672 2020-03-04T05:04:48Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. [[Category:Device]] 6e837ea3f1d56378140a6770c0bdd4940e6974c7 674 673 2020-03-04T05:05:10Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. [[Category:Device]] 8d3bae33e4666481aaaea1cca9d17bda08bd7eac 675 674 2020-03-04T05:17:01Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] 664d979f8a773b59dc697e6c89737497d00274ef 676 675 2020-03-04T05:41:23Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or? $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz or? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz $ ??? Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] 39abaa888330584743b61cb79a46f44a918af206 677 676 2020-03-04T05:47:54Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. How to dd to the SD card: In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] 2df4ae31b4359892cd311c2e41577569657db8c1 678 677 2020-03-04T05:53:22Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. ===if you downloaded the .img.xz=== dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. ===How to dd to the SD card:=== In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ===if you downloaded the .tar.gz=== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] 44fe38aa8fb6f27e4be88907162f13c1ffae13a5 679 678 2020-03-04T05:53:45Z Buffer 35 /* How to dd to the SD card: */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. ===if you downloaded the .img.xz=== dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. ====How to dd to the SD card:==== In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ===if you downloaded the .tar.gz=== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] 2112bc9c9966a5da216a65505e3334a8362befde 680 679 2020-03-04T05:54:07Z Buffer 35 /* How to dd to the SD card: */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. ===if you downloaded the .img.xz=== dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. ====How to dd to the SD card:==== In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ===if you downloaded the .tar.gz=== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] 8b083bf87ff1e3f2865ba2301ebe140fa5ccbebc 681 680 2020-03-04T05:54:28Z Buffer 35 /* if you downloaded the .img.xz */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. ===if you downloaded the .img.xz=== dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. =====How to dd to the SD card:===== In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ===if you downloaded the .tar.gz=== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] d22db6b8c357dc676c75342855a0057baaf8944a 682 681 2020-03-04T06:08:24Z Buffer 35 /* if you downloaded the .img.xz */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. ===if you downloaded the .img.xz=== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. =====How to dd to the SD card:===== In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.xz of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ===if you downloaded the .tar.gz=== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] eb9ebdda713b156d75044d9af396254c9bcd629e 683 682 2020-03-04T06:08:48Z Buffer 35 /* How to dd to the SD card: */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. ===if you downloaded the .img.xz=== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. =====How to dd to the SD card:===== In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ===if you downloaded the .tar.gz=== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] d4b9ed6c7b681532da4c04d8d3da4b2d5a0a5c2e 684 683 2020-03-04T06:10:32Z Buffer 35 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === Prepare the SD card === Format the SD card as ext4 using any of your preferred tools. ===if you downloaded the .img.xz=== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. =====How to dd to the SD card:===== In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ===if you downloaded the .tar.gz=== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] f7f393963c9f5b59baba6be49e2fa04994948493 685 684 2020-03-04T06:11:01Z Buffer 35 /* How to dd to the SD card: */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === Prepare the SD card === Format the SD card as ext4 using any of your preferred tools. ===if you downloaded the .img.xz=== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ===if you downloaded the .tar.gz=== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. [[Category:Device]] 1ceabf3786a2ab8933e333c67ea52ed215501e53 Nokia N900 0 48 686 641 2020-03-05T06:59:54Z Spinal 13 Add "Battery calibration" section wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Bluetooth || Not yet || Driver problems in mainline |- | Infrared || Yes || TX only (hardware limitation). |- | (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Proximity sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] a0e4c27aac3f296d75c800c044658e797e8907fc Development/Maintainers 0 101 688 2020-03-13T13:53:04Z Parazyd 1 Initial page stub. wikitext text/x-wiki = Maemo Leste software maintainers = This page contains a reference to maintainers of the software included in Maemo Leste that can be found on https://github.com/maemo-leste/ f530143e1e27d9bdd7aa50723c616f369a4d1d5c 689 688 2020-03-13T14:12:17Z Parazyd 1 Initial table of maintainers. wikitext text/x-wiki = Maemo Leste software maintainers = This page contains a reference to maintainers of the software included in Maemo Leste that can be found on https://github.com/maemo-leste/ {| class="wikitable" !|Software !|Maintainer |- |[https://github.com/maemo-leste/alarmd alarmd] |freemangordon |- |[https://github.com/maemo-leste/anakin-linux anakin-linux] |Wizzup |- |[https://github.com/maemo-leste/applet-datetime applet-datetime] |freemangordon |- |[https://github.com/maemo-leste/bugtracker bugtracker] |parazyd |- |[https://github.com/maemo-leste/cityinfo cityinfo] |freemangordon |- |[https://github.com/maemo-leste/clipboard-manager clipboard-manager] |freemangordon |- |[https://github.com/maemo-leste/clock clock] |freemangordon |- |[https://github.com/maemo-leste/clockd clockd] |freemangordon |- |[https://github.com/maemo-leste/codelockui codelockui] |freemangordon |- |[https://github.com/maemo-leste/connui-cellular connui-cellular] |freemangordon |- |[https://github.com/maemo-leste/connui-common connui-common] |freemangordon |- |[https://github.com/maemo-leste/connui-internet connui-internet] |freemangordon |- |[https://github.com/maemo-leste/connui-wlan connui-wlan] |freemangordon |- |[https://github.com/maemo-leste/documents documents] |parazyd |- |[https://github.com/maemo-leste/droid4-linux droid4-linux] |Wizzup |- |[https://github.com/maemo-leste/dsme dsme] |freemangordon |- |[https://github.com/maemo-leste/epeg epeg] |freemangordon |- |[https://github.com/maemo-leste/gtk gtk] |freemangordon |- |[https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] |freemangordon |- |[https://github.com/maemo-leste/hildon-application-manager-settings-standard hildon-application-manager-settings-standard] |parazyd |- |[https://github.com/maemo-leste/hildon-connectivity-meta hildon-connectivity-meta] |parazyd |- |[https://github.com/maemo-leste/hildon-control-panel hildon-control-panel] |freemangordon |- |[https://github.com/maemo-leste/hildon-desktop hildon-desktop] |freemangordon |- |[https://github.com/maemo-leste/hildon-games-wrapper hildon-games-wrapper] |freemangordon |- |[https://github.com/maemo-leste/hildon-home hildon-home] |freemangordon |- |[https://github.com/maemo-leste/hildon-im-vkbrenderer3 hildon-im-vkbrenderer3] |freemangordon |- |[https://github.com/maemo-leste/hildon-initscripts hildon-initscripts] |freemangordon |- |[https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] |freemangordon |- |[https://github.com/maemo-leste/hildon-input-method hildon-input-method] |freemangordon |- |[https://github.com/maemo-leste/hildon-input-method-configurator hildon-input-method-configurator] |freemangordon |- |[https://github.com/maemo-leste/hildon-input-method-framework hildon-input-method-framework] |freemangordon |- |[https://github.com/maemo-leste/hildon-input-method-plugins hildon-input-method-plugins] |freemangordon |- |[https://github.com/maemo-leste/hildon-meta hildon-meta] |parazyd |- |[https://github.com/maemo-leste/hildon-notify hildon-notify] |freemangordon |- |[https://github.com/maemo-leste/hildon-plugins-notify-sv hildon-plugins-notify-sv] |freemangordon |- |[https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb] |freemangordon |- |[https://github.com/maemo-leste/hildon-status-menu hildon-status-menu] |freemangordon |- |[https://github.com/maemo-leste/hildon-theme-cacher hildon-theme-cacher] |freemangordon |- |[https://github.com/maemo-leste/hildon-thumbnail hildon-thumbnail] |freemangordon |- |[https://github.com/maemo-leste/hildon-usb-gadgets hildon-usb-gadgets] |freemangordon |- |[https://github.com/maemo-leste/icd2 icd2] |freemangordon |- |[https://github.com/maemo-leste/icd2-osso-ic-dev icd2-osso-ic-dev] |freemangordon |- |[https://github.com/maemo-leste/icd2-settings-default icd2-settings-default] |freemangordon |- |[https://github.com/maemo-leste/image-builder image-builder] |parazyd |- |[https://github.com/maemo-leste/iphbd iphbd] |freemangordon |- |[https://github.com/maemo-leste/jenkins-integration jenkins-integration] |parazyd, Wizzup |- |[https://github.com/maemo-leste/ke-recv ke-recv] |freemangordon |- |[https://github.com/maemo-leste/ke-recv-extra ke-recv-extra] |freemangordon |- |[https://github.com/maemo-leste/libcal libcal] |freemangordon |- |[https://github.com/maemo-leste/libcmtspeechdata libcmtspeechdata] |freemangordon |- |[https://github.com/maemo-leste/libcomapp libcomapp] |freemangordon |- |[https://github.com/maemo-leste/libconbtui libconbtui] |freemangordon |- |[https://github.com/maemo-leste/libconic libconic] |freemangordon |- |[https://github.com/maemo-leste/libdevlock libdevlock] |freemangordon |- |[https://github.com/maemo-leste/libdsme libdsme] |freemangordon |- |[https://github.com/maemo-leste/libglibutil libglibutil] |freemangordon |- |[https://github.com/maemo-leste/libgofono libgofono] |freemangordon |- |[https://github.com/maemo-leste/libhildon libhildon] |freemangordon |- |[https://github.com/maemo-leste/libhildondesktop libhildondesktop] |freemangordon |- |[https://github.com/maemo-leste/libhildonfm libhildonfm] |freemangordon |- |[https://github.com/maemo-leste/libhildonmime libhildonmime] |freemangordon |- |[https://github.com/maemo-leste/libicd-network-dummy libicd-network-dummy] |freemangordon |- |[https://github.com/maemo-leste/libicd-network-ipv4 libicd-network-ipv4] |freemangordon |- |[https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] |freemangordon |- |[https://github.com/maemo-leste/libicd-network-usb libicd-network-usb] |freemangordon |- |[https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] |freemangordon |- |[https://github.com/maemo-leste/libimengines libimengines] |freemangordon |- |[https://github.com/maemo-leste/libimlayouts libimlayouts] |freemangordon |- |[https://github.com/maemo-leste/libmatchbox2 libmatchbox2] |freemangordon |- |[https://github.com/maemo-leste/libofono libofono] |freemangordon |- |[https://github.com/maemo-leste/libosso libosso] |freemangordon |- |[https://github.com/maemo-leste/libplayback libplayback] |freemangordon |- |[https://github.com/maemo-leste/libscconf libscconf] |freemangordon |- |[https://github.com/maemo-leste/libsdl libsdl] |freemangordon |- |[https://github.com/maemo-leste/libusbgx libusbgx] |Wizzup |- |[https://github.com/maemo-leste/lime2-linux lime2-linux] |Wizzup |- |[https://github.com/maemo-leste/maemo-launcher maemo-launcher] |freemangordon |- |[https://github.com/maemo-leste/maemo-leste.github.io maemo-leste.github.io] |Wizzup |- |[https://github.com/maemo-leste/maemo-multimedia-tone-generator maemo-multimedia-tone-generator] |freemangordon |- |[https://github.com/maemo-leste/maemo-security-certman maemo-security-certman] |freemangordon |- |[https://github.com/maemo-leste/maemo-security-certman-applet maemo-security-certman-applet] |freemangordon |- |[https://github.com/maemo-leste/maemo-system-services maemo-system-services] |freemangordon |- |[https://github.com/maemo-leste/mafw mafw] |freemangordon |- |[https://github.com/maemo-leste/mafw-gst-renderer mafw-gst-renderer] |freemangordon |- |[https://github.com/maemo-leste/mafw-iradio-source mafw-iradio-source] |freemangordon |- |[https://github.com/maemo-leste/mafw-shared mafw-shared] |freemangordon |- |[https://github.com/maemo-leste/mafw-test-gui mafw-test-gui] |freemangordon |- |[https://github.com/maemo-leste/mafw-tracker-source mafw-tracker-source] |freemangordon |- |[https://github.com/maemo-leste/mafw-upnp-source mafw-upnp-source] |freemangordon |- |[https://github.com/maemo-leste/mce mce] |freemangordon |- |[https://github.com/maemo-leste/mce-dev mce-dev] |freemangordon |- |[https://github.com/maemo-leste/mesa mesa] |parazyd |- |[https://github.com/maemo-leste/n9xx-linux n9xx-linux] |Wizzup |- |[https://github.com/maemo-leste/n9xx-ti-omap3-sgx n9xx-ti-omap3-sgx] |freemangordon |- |[https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx n9xx-xf86-video-fbdev-sgx] |freemangordon |- |[https://github.com/maemo-leste/ofono ofono] |freemangordon |- |[https://github.com/maemo-leste/ofono-d4 ofono-d4] |freemangordon |- |[https://github.com/maemo-leste/osso-abook osso-abook] |freemangordon |- |[https://github.com/maemo-leste/osso-af-settings osso-af-settings] |freemangordon |- |[https://github.com/maemo-leste/osso-af-startup osso-af-startup] |freemangordon |- |[https://github.com/maemo-leste/osso-af-utils osso-af-utils] |freemangordon |- |[https://github.com/maemo-leste/osso-app-killer osso-app-killer] |freemangordon |- |[https://github.com/maemo-leste/osso-applet-devicelock osso-applet-devicelock] |freemangordon |- |[https://github.com/maemo-leste/osso-applet-display osso-applet-display] |freemangordon |- |[https://github.com/maemo-leste/osso-applet-notificationlight osso-applet-notificationlight] |freemangordon |- |[https://github.com/maemo-leste/osso-applet-textinput osso-applet-textinput] |freemangordon |- |[https://github.com/maemo-leste/osso-bookmark-engine osso-bookmark-engine] |freemangordon |- |[https://github.com/maemo-leste/osso-calculator osso-calculator] |freemangordon |- |[https://github.com/maemo-leste/osso-calculator-engine osso-calculator-engine] |freemangordon |- |[https://github.com/maemo-leste/osso-games-startup osso-games-startup] |freemangordon |- |[https://github.com/maemo-leste/osso-icons osso-icons] |parazyd |- |[https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |freemangordon |- |[https://github.com/maemo-leste/osso-product-info osso-product-info] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui osso-systemui] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui-alarm osso-systemui-alarm] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui-dbus-dev osso-systemui-dbus-dev] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui-devlock-dev osso-systemui-devlock-dev] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui-modechange osso-systemui-modechange] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui-modechange-dev osso-systemui-modechange-dev] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui-powerkeymenu osso-systemui-powerkeymenu] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui-splashscreen-dev osso-systemui-splashscreen-dev] |freemangordon |- |[https://github.com/maemo-leste/osso-systemui-tklock osso-systemui-tklock] |freemangordon |- |[https://github.com/maemo-leste/osso-xterm osso-xterm] |freemangordon |- |[https://github.com/maemo-leste/pine64-kernel pine64-kernel] |parazyd, Wizzup |- |[https://github.com/maemo-leste/profiled profiled] |freemangordon |- |[https://github.com/maemo-leste/pygtk pygtk] |freemangordon |- |[https://github.com/maemo-leste/pymaemo-svn pymaemo-svn] |freemangordon |- |[https://github.com/maemo-leste/python-hildon python-hildon] |freemangordon |- |[https://github.com/maemo-leste/python-hildondesktop python-hildondesktop] |freemangordon |- |[https://github.com/maemo-leste/python-osso python-osso] |freemangordon |- |[https://github.com/maemo-leste/qtmaemo5 qtmaemo5] |freemangordon |- |[https://github.com/maemo-leste/qtstyleplugins qtstyleplugins] |freemangordon |- |[https://github.com/maemo-leste/rtcom-eventlogger rtcom-eventlogger] |freemangordon |- |[https://github.com/maemo-leste/rtl8723cs rtl8723cs] |parazyd |- |[https://github.com/maemo-leste/sapwood sapwood] |freemangordon |- |[https://github.com/maemo-leste/sdlgles sdlgles] |freemangordon |- |[https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery] |freemangordon |- |[https://github.com/maemo-leste/status-area-orientationlock-applet status-area-orientationlock-applet] |freemangordon |- |[https://github.com/maemo-leste/statusbar-alarm statusbar-alarm] |freemangordon |- |[https://github.com/maemo-leste/statusbar-alarm-dbus-api statusbar-alarm-dbus-api] |freemangordon |- |[https://github.com/maemo-leste/status-menu-applet-profiles status-menu-applet-profiles] |freemangordon |- |[https://github.com/maemo-leste/sysinfod sysinfod] |freemangordon |- |[https://github.com/maemo-leste/ti-omap3-sgx ti-omap3-sgx] |freemangordon |- |[https://github.com/maemo-leste/ukeyboard ukeyboard] |freemangordon |- |[https://github.com/maemo-leste/unicsy_demo unicsy_demo] |freemangordon |- |[https://github.com/maemo-leste/upower upower] |freemangordon |- |[https://github.com/maemo-leste/wl1251-cal wl1251-cal] |freemangordon |- |[https://github.com/maemo-leste/xf86-video-pvrsgx xf86-video-pvrsgx] |freemangordon |- |[https://github.com/maemo-leste/xorg-server xorg-server] |freemangordon |- |[https://github.com/maemo-leste/xserver-xorg-video-fbdev xserver-xorg-video-fbdev] |freemangordon |- |} 1204bbbc7f0ba3fa7e6d7d4cbd71e6af7414c2d7 Motorola Droid 4 0 50 690 628 2020-03-23T17:46:53Z Wizzup 4 Update for upcoming image wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == Current image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf === Sound === This needs to be executed to enable the sound: modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 2c6c02f45b9fcc6f3b76fedb8a59ef67e8c52633 Development/Tasks 0 92 691 617 2020-03-23T20:31:21Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} 13f0f650e5cf9b2b0f197ae22ad7c356ef7d0f1f User:Sicelo 2 86 692 426 2020-03-24T21:50:11Z Sicelo 5 wikitext text/x-wiki [[User:Sicelo/Wiki Tests]] [[User:Sicelo/Snippets]] cc8265bf2f914b8535eea969d15f317e2f7d4b05 693 692 2020-03-24T21:50:23Z Sicelo 5 wikitext text/x-wiki [[User:Sicelo/Wiki Tests]] [[User:Sicelo/Snippets]] 8198d47348eb9d7947619483b55396c930bd9a40 User:Sicelo/Snippets 2 102 694 2020-03-24T21:51:01Z Sicelo 5 Created page with "Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /..." wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect fbafe38e140b311f0f68866e0d6f77a81bbc1b65 695 694 2020-03-24T21:52:48Z Sicelo 5 wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect 8ba6b884f356704fff2f3af62cb3ac748dfbff2d User:Sicelo/Snippets 2 102 696 695 2020-03-24T21:57:58Z Sicelo 5 wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect Force N900 to stop charging while connected to power echo off > /sys/class/power_supply/bq24150a-0/mode 45bf84c575c3d05a2adde066f68470a26e857158 722 696 2020-04-13T22:28:19Z Sicelo 5 wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect Force N900 to stop charging while connected to power echo off > /sys/class/power_supply/bq24150a-0/mode Application wishlist from Wizzup <pre> Maybe fun to port: desktop: battery-eye (in vm al) catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category) live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/ datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/ personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/ humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/ personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/ custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/ advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/ app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/ qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/ DONE http://maemo.org/downloads/product/Maemo5/miku-theme/ education: dorian http://maemo.org/downloads/product/Maemo5/dorian/ evopedia http://maemo.org/downloads/product/Maemo5/evopedia/ e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/ gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak games smw - http://maemo.org/downloads/product/Maemo5/smw/ warmux - http://maemo.org/downloads/product/Maemo5/wormux/ battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/ drnoksnes (!!!) freecell4maemo ? prboom bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/ puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/ rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/ uae4all goed laten werken neverball - http://maemo.org/downloads/product/Maemo5/neverball/ graphics mypaint (?) raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/ multimedia Boel coole/nuttige music players qspot http://maemo.org/downloads/product/Maemo5/qspot/ recorder http://maemo.org/downloads/product/Maemo5/recorder/ qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/ maetronome http://maemo.org/downloads/product/Maemo5/maetronome/ location and navigation modrana marble? http://maemo.org/downloads/product/Maemo5/marble/ marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/ maep for sure http://maemo.org/downloads/product/Maemo5/maep/ gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/ OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/ interessant http://maemo.org/downloads/product/Maemo5/snuggle/ internet and networking google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/ meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/ twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/ zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/ witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/ vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/ wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/ qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/ xchat irc http://maemo.org/downloads/product/Maemo5/xchat/ office xournal http://maemo.org/downloads/product/Maemo5/xournal/ quicknote http://maemo.org/downloads/product/Maemo5/quicknote/ mebook http://maemo.org/downloads/product/Maemo5/mebook/ portabase? http://maemo.org/downloads/product/Maemo5/portabase/ other -- science orrery -- http://maemo.org/downloads/product/Maemo5/orrery/ accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/ system (lots of themes) theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/ matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/ borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/ okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/ cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/ maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/ extra translations / languages </pre> e966850f8e346291dafa21bdba6c6adbf1b9cdce 728 722 2020-05-07T12:52:37Z Sicelo 5 wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect Force N900 to stop charging while connected to power echo off > /sys/class/power_supply/bq24150a-0/mode Application wishlist from Wizzup <pre> Maybe fun to port: desktop: battery-eye (in vm al) catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category) live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/ datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/ personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/ humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/ personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/ custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/ advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/ app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/ qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/ DONE http://maemo.org/downloads/product/Maemo5/miku-theme/ education: dorian http://maemo.org/downloads/product/Maemo5/dorian/ evopedia http://maemo.org/downloads/product/Maemo5/evopedia/ e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/ gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak games smw - http://maemo.org/downloads/product/Maemo5/smw/ warmux - http://maemo.org/downloads/product/Maemo5/wormux/ battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/ drnoksnes (!!!) freecell4maemo ? prboom bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/ puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/ rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/ uae4all goed laten werken neverball - http://maemo.org/downloads/product/Maemo5/neverball/ graphics mypaint (?) raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/ multimedia Boel coole/nuttige music players qspot http://maemo.org/downloads/product/Maemo5/qspot/ recorder http://maemo.org/downloads/product/Maemo5/recorder/ qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/ maetronome http://maemo.org/downloads/product/Maemo5/maetronome/ location and navigation modrana marble? http://maemo.org/downloads/product/Maemo5/marble/ marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/ maep for sure http://maemo.org/downloads/product/Maemo5/maep/ gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/ OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/ interessant http://maemo.org/downloads/product/Maemo5/snuggle/ internet and networking google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/ meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/ twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/ zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/ witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/ vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/ wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/ qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/ xchat irc http://maemo.org/downloads/product/Maemo5/xchat/ office xournal http://maemo.org/downloads/product/Maemo5/xournal/ quicknote http://maemo.org/downloads/product/Maemo5/quicknote/ mebook http://maemo.org/downloads/product/Maemo5/mebook/ portabase? http://maemo.org/downloads/product/Maemo5/portabase/ other -- science orrery -- http://maemo.org/downloads/product/Maemo5/orrery/ accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/ system (lots of themes) theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/ matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/ borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/ okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/ cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/ maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/ extra translations / languages </pre> Other stuff to do/test: - N900 flashlight - WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/ - WiFi monitor mode (N900 & Droid 4) - WiFi hotspot (Droid 4) 65a45cb573dc14cc64fdda773920cfa7e2d310ac 729 728 2020-05-07T12:54:39Z Sicelo 5 wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect Force N900 to stop charging while connected to power echo off > /sys/class/power_supply/bq24150a-0/mode Application wishlist from Wizzup <pre> Maybe fun to port: desktop: battery-eye (in vm al) catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category) live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/ datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/ personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/ humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/ personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/ custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/ advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/ app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/ qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/ DONE http://maemo.org/downloads/product/Maemo5/miku-theme/ education: dorian http://maemo.org/downloads/product/Maemo5/dorian/ evopedia http://maemo.org/downloads/product/Maemo5/evopedia/ e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/ gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak games smw - http://maemo.org/downloads/product/Maemo5/smw/ warmux - http://maemo.org/downloads/product/Maemo5/wormux/ battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/ drnoksnes (!!!) freecell4maemo ? prboom bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/ puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/ rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/ uae4all goed laten werken neverball - http://maemo.org/downloads/product/Maemo5/neverball/ graphics mypaint (?) raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/ multimedia Boel coole/nuttige music players qspot http://maemo.org/downloads/product/Maemo5/qspot/ recorder http://maemo.org/downloads/product/Maemo5/recorder/ qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/ maetronome http://maemo.org/downloads/product/Maemo5/maetronome/ location and navigation modrana marble? http://maemo.org/downloads/product/Maemo5/marble/ marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/ maep for sure http://maemo.org/downloads/product/Maemo5/maep/ gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/ OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/ interessant http://maemo.org/downloads/product/Maemo5/snuggle/ internet and networking google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/ meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/ twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/ zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/ witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/ vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/ wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/ qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/ xchat irc http://maemo.org/downloads/product/Maemo5/xchat/ office xournal http://maemo.org/downloads/product/Maemo5/xournal/ quicknote http://maemo.org/downloads/product/Maemo5/quicknote/ mebook http://maemo.org/downloads/product/Maemo5/mebook/ portabase? http://maemo.org/downloads/product/Maemo5/portabase/ other -- science orrery -- http://maemo.org/downloads/product/Maemo5/orrery/ accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/ system (lots of themes) theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/ matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/ borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/ okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/ cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/ maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/ extra translations / languages </pre> Other stuff to do/test: <pre> - N900 flashlight - WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/ - WiFi monitor mode (N900 & Droid 4) - WiFi hotspot (Droid 4) </pre> 48aa4cea43ecc7fe95c11fe03215a3296d1c968b 731 729 2020-05-17T12:18:37Z Sicelo 5 wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect Force N900 to stop charging while connected to power echo off > /sys/class/power_supply/bq24150a-0/mode Application wishlist from Wizzup <pre> Maybe fun to port: desktop: battery-eye (in vm al) catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category) live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/ datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/ personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/ humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/ DONE personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/ custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/ advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/ app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/ qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/ DONE http://maemo.org/downloads/product/Maemo5/miku-theme/ education: dorian http://maemo.org/downloads/product/Maemo5/dorian/ evopedia http://maemo.org/downloads/product/Maemo5/evopedia/ e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/ gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak games smw - http://maemo.org/downloads/product/Maemo5/smw/ warmux - http://maemo.org/downloads/product/Maemo5/wormux/ battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/ drnoksnes (!!!) freecell4maemo ? prboom bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/ puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/ rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/ uae4all goed laten werken neverball - http://maemo.org/downloads/product/Maemo5/neverball/ graphics mypaint (?) raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/ multimedia Boel coole/nuttige music players qspot http://maemo.org/downloads/product/Maemo5/qspot/ recorder http://maemo.org/downloads/product/Maemo5/recorder/ qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/ maetronome http://maemo.org/downloads/product/Maemo5/maetronome/ location and navigation modrana marble? http://maemo.org/downloads/product/Maemo5/marble/ marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/ maep for sure http://maemo.org/downloads/product/Maemo5/maep/ gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/ OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/ interessant http://maemo.org/downloads/product/Maemo5/snuggle/ internet and networking google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/ meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/ twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/ zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/ witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/ vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/ wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/ qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/ xchat irc http://maemo.org/downloads/product/Maemo5/xchat/ office xournal http://maemo.org/downloads/product/Maemo5/xournal/ quicknote http://maemo.org/downloads/product/Maemo5/quicknote/ mebook http://maemo.org/downloads/product/Maemo5/mebook/ portabase? http://maemo.org/downloads/product/Maemo5/portabase/ other -- science orrery -- http://maemo.org/downloads/product/Maemo5/orrery/ accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/ system (lots of themes) theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/ matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/ borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/ okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/ cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/ maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/ extra translations / languages </pre> Other stuff to do/test: <pre> - N900 flashlight - WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/ - WiFi monitor mode (N900 & Droid 4) - WiFi hotspot (Droid 4) </pre> df1fecbe771ccebd86f947f33d3d0fab141d1c80 Motorola Droid 4 0 50 697 690 2020-03-25T00:26:10Z BuZz 32 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == Current image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf === Sound === This needs to be executed to enable the sound: modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 6725fb149aa638957ca7d37a0985c8879a2cae81 698 697 2020-03-25T00:31:53Z BuZz 32 /* Blinkenlights */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == Current image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf === Sound === This needs to be executed to enable the sound: modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 15e5cf3ff79d8ecd45295f1799f06e8c6f0e7ebd 699 698 2020-03-25T00:32:11Z BuZz 32 /* Blinkenlights */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Postinstall notes for 20200112 image == Current image has some erratas which can be fixed by following the instructions found in this post: https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674 === Wifi === Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list) deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free apt install -t ascii-backports wpasupplicant apt install -t ascii-backports firmware-ti-connectivity === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf === Sound === This needs to be executed to enable the sound: modprobe snd-soc-cpcap modprobe snd-soc-motmdm modprobe snd-soc-audio-graph-card == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] a8ab3b4312812f4beddf129bfa24b6837453d5b9 703 699 2020-03-25T17:36:57Z Wizzup 4 Remove postinstall notes for old image that are no longer relevant wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- |Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. === Bluetooth === Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/ $ sha256sum TIInit_10.6.15.bts 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] e23bd089ba03c701011dc0f0836517ba80dc7b9a 704 703 2020-03-26T02:14:07Z BuZz 32 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Reported to work, no UI yet |- | Phone calls || WIP || Reported to work, no UI yet |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 0eb04c5bacb5672d684e35eab9579b7d1b815d02 705 704 2020-03-26T09:51:11Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] cd2677e3ce9333c8826767cf9336c27ab5918267 706 705 2020-03-26T10:40:59Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] d26f36cd10174372afe5ba328a0197b25d881a8d 707 706 2020-03-26T15:15:32Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: $ cat /dev/motmdm1 & Online modem: $ printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: $ printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: $ printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: $ printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: $ printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: $ printf "ATH\r" > /dev/motmdm1 Answer incoming call: $ printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] b898d00af524e7b1d329960e0cca13626093cd90 708 707 2020-03-26T20:28:23Z Sicelo 5 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: $ cat /dev/motmdm1 & Online modem: $ printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: $ printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: $ printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: $ printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: $ printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: $ printf "ATH\r" > /dev/motmdm1 Answer incoming call: $ printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] e2ac871544610f5a1e3e3686f78ae92696ab3564 709 708 2020-03-26T20:35:10Z Sicelo 5 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: $ cat /dev/motmdm1 & Online modem: $ printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: $ printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: $ printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: $ printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: $ printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: $ printf "ATH\r" > /dev/motmdm1 Answer incoming call: $ printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 27d48981ad39312c5fd1f9092456f9a690ff9ac7 710 709 2020-03-26T20:39:30Z Sicelo 5 /* Phone Call - Root terminal needed*/ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 2c978f5fa9305185c9f288aca85b5b823cc715b2 711 710 2020-03-26T22:03:11Z Sicelo 5 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 10953be4bfed843cf9800bb98aabf1a476f4dd03 712 711 2020-03-30T22:59:57Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] eee6235ac60ab0cbfd10acb7b68649d6df6d3972 713 712 2020-03-30T23:00:06Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] bb053cff4b0878e85e50b8f00726bd7648cb579f 714 713 2020-03-30T23:00:53Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 2f5c96161af6970e5f84299a17d908efe36fd35b 723 714 2020-04-26T18:59:54Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 6295773a9624e01657a98a72b33f46977360af03 726 723 2020-05-06T03:01:55Z BuZz 32 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video= |audio= |network= |storage=8GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 51e9cb49e8f461d4dbed603a47fa27aaa6150ce5 727 726 2020-05-06T03:14:07Z BuZz 32 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] df6d9ee380fc9200aa1e5955d7c2e10a57e1a36f 730 727 2020-05-11T22:19:46Z BuZz 32 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294 |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 9bcaebf6ba7325320868f0cb266aa0b3b8408438 732 730 2020-05-19T19:34:21Z Brabo 38 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. |- | FM Transmitter || N/A || |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works, but not with hildon-desktop |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] fafcdeb538454a2bf42e9095f0aaee75f8b47b56 737 732 2020-05-21T19:15:04Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 928e14fc1af8fcb22c9a10818386147b6d4fed17 738 737 2020-05-21T19:29:11Z Sicelo 5 reorder table rows to make comparisons between Droid 4 and N900 easier wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 6aea993a5f602518a908568bb032c47b2a5f6c5e 740 738 2020-05-21T19:32:42Z Sicelo 5 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || No || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi) Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 2b0cbf012fe14041f77024382705c63f68cd4533 Status 0 64 700 646 2020-03-25T11:32:45Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |} bd352a6b5382a0efb83c09752873804847a867b8 Status/Theming 0 103 701 2020-03-25T11:34:00Z Wizzup 4 Created page with "= Theming = Maemo Leste has multiple themes packages, and changing the theme can be done using the control panel. The following themes are known to be available: * hildon-t..." wikitext text/x-wiki = Theming = Maemo Leste has multiple themes packages, and changing the theme can be done using the control panel. The following themes are known to be available: * hildon-theme-alpha * hildon-theme-beta * hildon-theme-devel * hildon-theme-marina a433d945c660ddfaa41ec40a7e2d9981a31b6a45 702 701 2020-03-25T11:34:31Z Wizzup 4 wikitext text/x-wiki = Theming = Maemo Leste has multiple themes packages, and changing the theme can be done using the control panel. The following themes are known to be available (and can be installed using apt, or the [[Status/Application_Manager|Application Manager]]: * hildon-theme-alpha * hildon-theme-beta * hildon-theme-devel * hildon-theme-marina d277354a8c89549598512e4ad5675482ce22f007 PinePhone 0 93 715 685 2020-03-31T23:55:27Z Stoehraj 37 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values by the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] 036a70d651aa65258ffe48bedcdfcc0ba6e15055 716 715 2020-04-01T15:09:42Z Stoehraj 37 /* eMMC Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] cd35ae2f21b196004df1eac84af6833681a55502 717 716 2020-04-01T15:10:42Z Stoehraj 37 /* Modify the image to use eMMC paths */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || lima (!) |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || ? || Available as input device, needs MCE work |- | Proximity sensor || ? || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Should work on the modem |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] 4dee33ada50b1b3e4ae4d7c61ff98962efcb34cb Tweaking 0 104 718 2020-04-06T16:24:22Z Wizzup 4 Created page with "Maemo Leste is very tweakable/hackable/versatile, this page lists (only some) of the things you could change, hopefully grouped in a meaningful manner. * Tweaking/Battery a..." wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists (only some) of the things you could change, hopefully grouped in a meaningful manner. * [[Tweaking/Battery applet|Change how battery applet renders]] f777525b140ab32254e2127fc7432e462f25ca4e 719 718 2020-04-06T17:00:07Z Sicelo 5 24 hour time display and alternate battery charging animation wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner. ==== Battery icon ==== You can change the animation of the charging icon to show the current charge capacity: <pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> ==== 24-hour clock ==== Until the clock application and/or control panel applet is working, you can display time in 24 hour mode using <pre>gconftool-2 -s /apps/clock/time-format -t bool true</pre> bdb0a3c7033243d0ff285aefaa0b297ff84b0d56 Development/Tasks 0 92 720 691 2020-04-06T18:00:38Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start, [[User:Wizzup]] picking up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ || |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || wIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} c993a92c4ded47a5c4860053774aef8ab7810f89 Development/Building Packages 0 80 721 667 2020-04-08T22:56:33Z Sicelo 5 Add info about HAM's user sections and icon definitions wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/ascii Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste ascii main contrib non-free deb https://maedevu.maemo.org/extras ascii main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/ascii - main branch for Devuan Ascii target # maemo/ascii-devel - optional branch for Devuan Ascii with unstable/testing version # maemo/beowulf - main branch for Devuan Beowulf version of the package See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. == Consideration for HAM == For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the <code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through <code>.desktop</code> files, while the former is done in <code>debian/control</code>. 0230a2b85270f14cae7e45c5da055313b3a11880 Wishlist 0 89 724 647 2020-04-27T12:54:29Z Sicelo 5 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |) cff6845c593e1d336637549885eaf3ec8b5115d1 User:Wizzup 2 58 725 142 2020-04-27T15:28:00Z Wizzup 4 wikitext text/x-wiki I want work on the following things for the wiki: * Device status overviews * Device installation instructions * A category for software packages. Something like Category:Software for a, say, the Internet Connectivity Daemon. Would be nice to have an overview of the features / software that we ship in a category * ... Extras wishlist: <pre> games smw - http://maemo.org/downloads/product/Maemo5/smw/ warmux - http://maemo.org/downloads/product/Maemo5/wormux/ battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/ drnoksnes (!!!) freecell4maemo ? prboom bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/ puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/ rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/ uae4all - make it work well neverball - http://maemo.org/downloads/product/Maemo5/neverball/ graphics mypaint (?) raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/ multimedia cool players qspot http://maemo.org/downloads/product/Maemo5/qspot/ recorder http://maemo.org/downloads/product/Maemo5/recorder/ qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/ maetronome http://maemo.org/downloads/product/Maemo5/maetronome/ location and navigation modrana marble? http://maemo.org/downloads/product/Maemo5/marble/ marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/ maep for sure http://maemo.org/downloads/product/Maemo5/maep/ gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/ OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/ interessant http://maemo.org/downloads/product/Maemo5/snuggle/ internet and networking google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/ google voice http://maemo.org/downloads/product/Maemo5/dialcentral/ twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/ zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/ witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/ vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/ wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/ qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/ xchat irc http://maemo.org/downloads/product/Maemo5/xchat/ office xournal http://maemo.org/downloads/product/Maemo5/xournal/ quicknote http://maemo.org/downloads/product/Maemo5/quicknote/ mebook http://maemo.org/downloads/product/Maemo5/mebook/ portabase? http://maemo.org/downloads/product/Maemo5/portabase/ other -- science orrery -- http://maemo.org/downloads/product/Maemo5/orrery/ accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/ system (lots of themes) theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/ DONE matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/ borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/ DONE okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/ cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/ maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/ extra translations / languages </pre> 37b70481ce9be677d29c596157e261e3b61513c9 Getting Started 0 105 733 2020-05-20T17:14:11Z Brabo 38 Created page with "= Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = Tweaking = See [[Tweaking]]" wikitext text/x-wiki = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = Tweaking = See [[Tweaking]] 13888dd96a987ce2c38c992bcffc0c5be0a50cc2 Status/USB Peripheral 0 73 734 637 2020-05-21T18:50:45Z Sicelo 5 use iproute2 commands wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Bringing up network on your PC == After plugging USB from your device into your PC, issue: <pre> ip link set usb0 up # this one might not really be necessary ip address add 192.168.42.1/24 dev usb0 ssh root@192.168.42.2 </pre> == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: The default password is <code>toor</code>. (user: <code>root</code>) And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code> Now your Leste device should be able to use your PC network == Notes == * The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code> 22e4b7684227f8c22f2c412967b9d34a2a8f7401 Development 0 61 735 687 2020-05-21T19:04:55Z Sicelo 5 We are on Beowulf/Buster now wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 6e553228360df9b977509d63f3b3f6ccb7a7611e IRC channel 0 54 736 424 2020-05-21T19:10:36Z Sicelo 5 wikitext text/x-wiki We are on '''irc.freenode.net''' ; channel '''#maemo-leste''' You can connect from your browser using the [https://webchat.freenode.net/ webchat]. However, a dedicated IRC client is recommended for long-term use. We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not 'police' the channel, it is also good etiquette to remain on-topic as far as possible. aca089ba72c8e4ab3b2cb3939afdfeb36b7a1842 Nokia N900 0 48 739 686 2020-05-21T19:29:51Z Sicelo 5 reorder table rows to make comparisons between Droid 4 and N900 easier wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] cf405b1de473056836c42aa630e01351c9603d81 741 739 2020-05-21T19:43:31Z Sicelo 5 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] e566599c53d38b6f4ad4ee3a8ff8227017e3aa81 742 741 2020-05-21T19:44:59Z Sicelo 5 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] dd5cfd7f4694de9dc2d2ef901ae45ce72b8f4c89 743 742 2020-05-21T19:45:49Z Sicelo 5 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] ac1a09c6709c0500d83b0421424b16b74270a8c5 744 743 2020-05-21T19:50:45Z Sicelo 5 /* Battery calibration */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The original Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] 92ac944ef627e18a9e50403c7578ae3ab7437fa1 Leste FAQ 0 62 745 631 2020-05-22T19:35:37Z Derby 3 State that Maemo Leste uses mainline Linux in the description under "What is Maemo Leste?" wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 95ea63b22bbbec74d6c52c23a05f8ca2312514bc Nokia N900 0 48 746 744 2020-05-24T14:22:35Z Sicelo 5 There's no other N900 version or sequel :-) wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] cabae2bf5f2acb73cdc35cbbe8cec9b3975a5d94 747 746 2020-05-24T14:23:36Z Sicelo 5 Move "Notes" to later in the page wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Images: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] a2cc89f2fd127504bf5bed0719a9b6eb247e67d1 Status/Mobile Data 0 75 748 391 2020-05-26T14:41:42Z Brabo 38 wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/195 * https://github.com/maemo-leste/bugtracker/issues/196 We will need the following: * <s>RE of the current data icd2 plugin from Fremantle (as starting base)</s> * <s>Code to interface with ofono, resulting in libicd-network-ofono</s> (WIP) * <s>Connui UI plugins for gprs and port it to ofono https://github.com/maemo-leste/connui-cellular</s> (WIP) * <s>Database of various mobile operations and their default APN information</s> in connui-cellular and ofono * <s>Hardware/driver support</s> (working for various devices) Useful resources/hw/links: * https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, works for non-data only) * An USB modem for testing (like Option modems) * ofono: https://01.org/ofono Olimex 3g modem (should also do voice calls), should work with ofono: * https://www.olimex.com/Products/USB-Modules/MOD-USB3G/ * https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf USB passthrough on QEMU can work like this (note -device usb-ehci and -device usb-host), pick proper product/vendor IDs: <pre> sudo qemu-system-x86_64 -hda \ /ext4/leste/maemo-leste-1.0-amd64-virtual-20181102.qcow2 \ -vga virtio -enable-kvm -cpu host -smp cores=2 -m 4096 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 -display gtk \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x2c7c,productid=0x0125 \ -device usb-host,bus=ehci.0,vendorid=0x13d3,productid=0x3346 \ -monitor stdio </pre> Modems from Pine64 Devkits work with ofono: * http://wiki.pine64.org/index.php/Project_Anakin * http://wiki.pine64.org/index.php/Project_Don't_be_evil 1361b01220e6940720344f5e63e34f16d100d411 Virtual Machine 0 60 749 645 2020-05-26T15:38:44Z Brabo 38 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === Real hardware === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format. $ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz $ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw The raw image that it yields, can then be setup as a loopback device, and its partitions mounted. # losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw # mkdir /mnt/maemo-virt # mount /dev/loop0p1 /mnt/maemo-virt Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well. # cfdisk /dev/sdb # ... # mkfs.ext4 /dev/sdb1 # mkdir /mnt/maemo-bare # mount /dev/sdb1 /mnt/maemo-bare Change directory to the loop partition, the copy over its contents into the bare metal partition. # cd /mnt/maemo-virt # rsync -aAHXv * /mnt/maemo-bare Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root. # mount --bind /dev /mnt/maemo-bare/dev # mount --bind /proc /mnt/maemo-bare/proc # mount --bind /sys /mnt/maemo-bare/sys # chroot /mnt/maemo-bare /bin/bash Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file. # . /etc/profile # grub-install /dev/sdb # grub-mkconfig -o /boot/grub/grub.cfg After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation. # umount /mnt/maemo-virt # umount -AR /mnt/maemo-bare # reboot == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] f1125888fcff52daa36a3f462332fce8de424df8 750 749 2020-05-26T20:23:53Z Sicelo 5 /* QEMU */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add -usb -device usb-tablet to the command line If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === Real hardware === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format. $ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz $ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw The raw image that it yields, can then be setup as a loopback device, and its partitions mounted. # losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw # mkdir /mnt/maemo-virt # mount /dev/loop0p1 /mnt/maemo-virt Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well. # cfdisk /dev/sdb # ... # mkfs.ext4 /dev/sdb1 # mkdir /mnt/maemo-bare # mount /dev/sdb1 /mnt/maemo-bare Change directory to the loop partition, the copy over its contents into the bare metal partition. # cd /mnt/maemo-virt # rsync -aAHXv * /mnt/maemo-bare Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root. # mount --bind /dev /mnt/maemo-bare/dev # mount --bind /proc /mnt/maemo-bare/proc # mount --bind /sys /mnt/maemo-bare/sys # chroot /mnt/maemo-bare /bin/bash Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file. # . /etc/profile # grub-install /dev/sdb # grub-mkconfig -o /boot/grub/grub.cfg After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation. # umount /mnt/maemo-virt # umount -AR /mnt/maemo-bare # reboot == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] 60b7330d636df5a68b7810d50b90e478a43273d7 752 750 2020-05-27T12:45:39Z Brabo 38 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add -usb -device usb-tablet to the command line If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 [[Category:Device]] e46e06f5c9ad788ca6a891bf8a4935db20a88db6 753 752 2020-05-27T13:20:26Z Brabo 38 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add -usb -device usb-tablet to the command line If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] d8c7ab5aa75994d7f3f5de36fa90d2d2d099b7a3 754 753 2020-05-28T00:08:10Z Derby 3 /* Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add -usb -device usb-tablet to the command line If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here]. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 2aaaaa421443f2b8a9d31c994ab82b9fc43ae235 757 754 2020-05-29T13:16:18Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 -machine vmport=off should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add -usb -device usb-tablet to the command line If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 -machine vmport=off \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here]. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 3b034ad226c471b021c2ae9190a7899b006e7940 758 757 2020-05-29T13:17:14Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 -usb -device usb-mouse -machine vmport=off should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add -usb -device usb-tablet to the command line If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 -usb -device usb-mouse -machine vmport=off \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here]. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 85b2ec22fdaf27bfa5317e49a16172530363454f 759 758 2020-05-29T13:27:56Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add -usb -device usb-tablet to the command line If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here]. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 48e2a04f2057232c80d226b982a3868a67b24a1a 760 759 2020-05-29T13:38:19Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add -usb -device usb-tablet to the command line Alternatively if that dose not work you can instead add -usb -device usb-mouse -machine vmport=off If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here]. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 1b1313df3028c5629db477e73ceef13b9db4f098 761 760 2020-05-29T13:39:06Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like: qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add: -usb -device usb-tablet to the command line. Alternatively if that dose not work you can instead add: -usb -device usb-mouse -machine vmport=off If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here]. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 1ea5e7ce07e58e73abb5adf0346bf465f0622753 X86 0 106 751 2020-05-27T12:45:30Z Brabo 38 Created page with "=== Running on x86/x86_64 === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the..." wikitext text/x-wiki === Running on x86/x86_64 === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format. $ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz $ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw The raw image that it yields, can then be setup as a loopback device, and its partitions mounted. # losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw # mkdir /mnt/maemo-virt # mount /dev/loop0p1 /mnt/maemo-virt Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well. # cfdisk /dev/sdb # ... # mkfs.ext4 /dev/sdb1 # mkdir /mnt/maemo-bare # mount /dev/sdb1 /mnt/maemo-bare Change directory to the loop partition, the copy over its contents into the bare metal partition. # cd /mnt/maemo-virt # rsync -aAHXv * /mnt/maemo-bare Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root. # mount --bind /dev /mnt/maemo-bare/dev # mount --bind /proc /mnt/maemo-bare/proc # mount --bind /sys /mnt/maemo-bare/sys # chroot /mnt/maemo-bare /bin/bash Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file. # . /etc/profile # grub-install /dev/sdb # grub-mkconfig -o /boot/grub/grub.cfg After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation. # umount /mnt/maemo-virt # umount -AR /mnt/maemo-bare # reboot 5ece8e51982d9a6396d96c7c818304338e584f12 770 751 2020-06-05T02:23:51Z Derby 3 wikitext text/x-wiki {{DISPLAYTITLE:x86}} === Running on x86/x86_64 === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format. $ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz $ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw The raw image that it yields, can then be setup as a loopback device, and its partitions mounted. # losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw # mkdir /mnt/maemo-virt # mount /dev/loop0p1 /mnt/maemo-virt Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well. # cfdisk /dev/sdb # ... # mkfs.ext4 /dev/sdb1 # mkdir /mnt/maemo-bare # mount /dev/sdb1 /mnt/maemo-bare Change directory to the loop partition, the copy over its contents into the bare metal partition. # cd /mnt/maemo-virt # rsync -aAHXv * /mnt/maemo-bare Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root. # mount --bind /dev /mnt/maemo-bare/dev # mount --bind /proc /mnt/maemo-bare/proc # mount --bind /sys /mnt/maemo-bare/sys # chroot /mnt/maemo-bare /bin/bash Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file. # . /etc/profile # grub-install /dev/sdb # grub-mkconfig -o /boot/grub/grub.cfg After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation. # umount /mnt/maemo-virt # umount -AR /mnt/maemo-bare # reboot 55daa81806d182590d09064a0363b4a475313d31 Development/Porting Packages 0 82 755 590 2020-05-28T11:32:03Z Sicelo 5 wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages 1ba78ae1a9da9ff73832b7a6fcd173484d796c30 Nokia N950 0 56 756 155 2020-05-29T08:56:07Z Halftux 7 /* Installation */ changed link to the image wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} [https://github.com/maemo-leste/bugtracker/issues/121 Status] === Installation === ''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC ''' # [http://www.swagman.org/juice/ubiboot/README Install ubiboot]. # [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4. # Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/ N9], [https://maedevu.maemo.org/images/n950/ N950]) to it. # Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]): #* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code> #* Set '''G_OS5_NUM''' to <code>1</code> #* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice #* Set '''G_OS5_NAME''' to <code>Maemo</code> #* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like #* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code> # Reboot to ubiboot and select the slot for Maemo Leste. If you don't want to repartition your eMMC, there are two alternatives: * Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot]. * Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories. === Kernel development === Linux 4.16.4 plus patches N950 status: https://elinux.org/N950 N9 status: https://elinux.org/N9 Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches] &nbsp; [[Category:Device]] 78c1f63bfa5810e139176e3a5ca2196ee9686c02 Main Page 0 1 762 655 2020-06-02T08:58:06Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. = Frequently Asked Questions = See [[Leste_FAQ|FAQ]] = Supported Devices = See [[:Category:Device]] = Development = See [[Development]] = Roadmap = == Project milestones == https://github.com/maemo-leste/bugtracker/milestones == Wishlist == You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. = Talks = See [[Talks]] = Links = <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> c4839082a2dabc7c8a850440cf4247e63d6e9c15 790 762 2020-06-27T00:45:22Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 0b9d4c801bf91eae4a72c46ad5b1957274c3ef1e Motorola Droid 4 0 50 763 740 2020-06-03T08:45:32Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: # apt-get install ti-utils-wilink6 droid4-wlanconfig Run calibration: # sudo maserati-calibrate ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] e13569dab3b972a8d387d5750e2f996791ab1f94 764 763 2020-06-03T08:47:01Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig <\pre> Run calibration: <pre> sudo maserati-calibrate <\pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 48191243f9d37087175bc52b9d436fa57f99d463 765 764 2020-06-03T08:49:28Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI |- | Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] c430c0ffb51296555bd8cc4725ae1e3f4d497486 785 765 2020-06-20T17:24:23Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 0ca05039344581f850db6f73b1986a9eba599a23 787 785 2020-06-24T16:58:59Z Xsetiadi 33 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 9eb2f5be8ef319a732edd55c3b610371e3de3375 788 787 2020-06-25T12:59:22Z Xsetiadi 33 /* Stuff to try */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi amixer cset numid=21 HiFi amixer cset numid=26 HiFi amixer cset numid=25 HiFi amixer cset numid=1 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 30b6abfc4f529e3c2d6b1f068dd0afc998d4bc22 789 788 2020-06-25T13:02:22Z Xsetiadi 33 /* Make Audio Automaticaly set up */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 1b41138165cc9da5b8c83b7b995bd14703408221 HowTo 0 107 766 2020-06-03T09:16:16Z Wizzup 4 Created page with "This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How do I play music? === Currently, pick any UNIX..." wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How do I play music? === Currently, pick any UNIX or GUI tool from standard debian that you like. In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player == Motorola Droid 4 == 874376eeebd2fcd035369af94dce1b7068f28193 767 766 2020-06-04T13:59:49Z Wizzup 4 wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock or unlock the device? === Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device. If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device. Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. === How do I play music? === Currently, pick any UNIX or GUI tool from standard debian that you like. In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player == Motorola Droid 4 == 1765ca7f0ae3f0dd375a7533644e06a4ecbdc277 768 767 2020-06-04T14:00:09Z Wizzup 4 wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device. If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device. Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. === How do I play music? === Currently, pick any UNIX or GUI tool from standard debian that you like. In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player == Motorola Droid 4 == 7535b76ae6b143bd6f8a50310d4ed9f8486de460 769 768 2020-06-04T15:05:20Z Wizzup 4 wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device. If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device. Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. === How do I play music? === Currently, pick any UNIX or GUI tool from standard debian that you like. In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. bd24eed3efb4fd67386d0ece9a5dd85b1a4bcce5 771 769 2020-06-06T12:21:55Z Wizzup 4 wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device. If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device. Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. === How do I play music? === Currently, pick any UNIX or GUI tool from standard debian that you like. In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player === How do I get the virtual keyboard to show up? === Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked". The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard) == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. == Nokia N900 == === How do I show the special keys virtual keyboard? === Press the blue arrow, and then press the ctrl key. 03f24f9fad31a51713781cff9477d92e47ecdad3 775 771 2020-06-07T17:05:43Z Wizzup 4 wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device. If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device. Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. === How do I play music? === Currently, pick any UNIX or GUI tool from standard debian that you like. In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player === How do I get the virtual keyboard to show up? === Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked". The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard) == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "shift" (but really is the control key). == Nokia N900 == === How do I show the special keys virtual keyboard? === Press the blue arrow, and then press the ctrl key. 972bb985f22679271f6a5e8ed7a559800afea191 776 775 2020-06-13T13:15:11Z Sicelo 5 /* How I lock and unlock the device? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any UNIX or GUI tool from standard debian that you like. In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player === How do I get the virtual keyboard to show up? === Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked". The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard) == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "shift" (but really is the control key). == Nokia N900 == === How do I show the special keys virtual keyboard? === Press the blue arrow, and then press the ctrl key. 110cd9b7c86d11e9a3c9ff7c62d3fdaf07c6c4f2 777 776 2020-06-13T13:17:28Z Sicelo 5 /* How do I play music? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I get the virtual keyboard to show up? === Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked". The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard) == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "shift" (but really is the control key). == Nokia N900 == === How do I show the special keys virtual keyboard? === Press the blue arrow, and then press the ctrl key. 3b930b6730c85ff84aa644b48acb71ed12715942 778 777 2020-06-13T13:18:59Z Sicelo 5 /* How do I show the special keys virtual keyboard? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I get the virtual keyboard to show up? === Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked". The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard) == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "shift" (but really is the control key). == Nokia N900 == === How do I show the special keys virtual keyboard? === On the keyboard, the blue arrow, and then press the Ctrl key. a36e7cbbabbd374a2d007ed429b9580204a81590 779 778 2020-06-13T13:21:27Z Sicelo 5 /* Nokia N900 */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I get the virtual keyboard to show up? === Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked". The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard) == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "shift" (but really is the control key). == Nokia N900 == === How do I show the special keys virtual keyboard? === On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included. 004c38d37690f4f4d75de6acf1c62585c041a26c 780 779 2020-06-13T13:28:23Z Sicelo 5 /* How do I show the special keys virtual keyboard? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I get the virtual keyboard to show up? === Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked". The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard) == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included. '''NB:''' Some of the symbols in the special keys are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã' == Nokia N900 == === How do I show the special keys virtual keyboard? === On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included. dbc851dc80db125cdd7ab27466f917927f20a8ec 781 780 2020-06-13T13:31:22Z Sicelo 5 /* How do I get the virtual keyboard to show up? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I use the virtual keyboard === First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked. The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard). '''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'. == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included. '''NB:''' Some of the symbols in the special keys are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã' == Nokia N900 == === How do I show the special keys virtual keyboard? === On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included. 893704d3c7544262de5d26312f81bceb6510902d 782 781 2020-06-13T13:37:03Z Sicelo 5 /* How do I show the special keys virtual keyboard? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I use the virtual keyboard === First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked. The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard). '''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'. == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included. See the [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s) == Nokia N900 == === How do I show the special keys virtual keyboard? === On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included. 9a59991cd1939ea22bab2a8f5425cda4d632f8dd 783 782 2020-06-13T13:37:23Z Sicelo 5 /* How do I show the special keys virtual keyboard? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I use the virtual keyboard === First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked. The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard). '''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'. == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included. See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s) == Nokia N900 == === How do I show the special keys virtual keyboard? === On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included. ed4b9272fee8db98fca321dbf44a8181010c84fe 784 783 2020-06-13T13:37:46Z Sicelo 5 /* How do I show the special keys virtual keyboard? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I use the virtual keyboard === First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked. The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard). '''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'. == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included. See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s) == Nokia N900 == === How do I show the special keys virtual keyboard? === On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included. See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s) 010603c25d388b5eead64b568525d2934e3ab0f0 791 784 2020-06-27T15:56:20Z Sicelo 5 /* How I lock and unlock the device? */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How do I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I use the virtual keyboard === First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked. The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard). '''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'. == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included. See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s) == Nokia N900 == === How do I show the special keys virtual keyboard? === On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included. See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s) 4b769b339d6e125b2348cee8ff9c0aa34ac90645 Leste FAQ 0 62 772 745 2020-06-06T17:01:31Z Derby 3 /* Is Maemo Leste completely free? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb cec7c5fc5e44621ada76491028b293c649a9591d 773 772 2020-06-06T17:03:05Z Derby 3 /* How does Maemo Leste compare with PureOS? */ Removing link to viedo as it is no longer available wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 0367e2f336c689ce652b1183a8b21aae73a02bd1 774 773 2020-06-06T17:43:49Z Derby 3 /* How about other popular non-Android mobile Linux distributions? */ wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], which favours device compatibility and ease of device porting, at the expense of software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb 24023e915c1189adff612238b09727be730837f5 Wishlist 0 89 786 724 2020-06-21T11:13:09Z Linmob 40 /* Applications */ Commented on Maps GPS (FoxtrotGPS) wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |) d58e33ab0d7ad1042c33baf7dbe34be319c8d149 Status/GPS 0 76 792 286 2020-06-28T13:30:01Z Wizzup 4 wikitext text/x-wiki Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363 * (On combining multiple gps sources such as A-GPL/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html * supl implementation: https://github.com/tajuma/supl 5506c260a9331a0862e591037ee08c16d27b8086 793 792 2020-06-28T20:39:36Z Parazyd 1 gps discoveries wikitext text/x-wiki == Fremantle Gypsy == is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon". location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD. == Relevant URLs == * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363 * (On combining multiple gps sources such as A-GPL/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html * supl implementation: https://github.com/tajuma/supl * https://talk.maemo.org/showthread.php?t=93910 * https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c 6a0e73d721afb71db97e880de3ee53cf637a8383 794 793 2020-06-29T20:41:52Z Wizzup 4 wikitext text/x-wiki == Fremantle Gypsy == is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon". location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD. == Relevant URLs == * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363 * (On combining multiple gps sources such as A-GPL/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html * supl implementation: https://github.com/tajuma/supl * https://talk.maemo.org/showthread.php?t=93910 * https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c == Regarding Droid 4 GPS == <pre> 17:05 < Wizzup> tmlind: wrt gps on the droid, you said there is currently a bug that allows opening /dev/gnss* only once? 17:09 < tmlind> Wizzup: i think that was a bug in gpsd, did not happen last time i tried. if you hit that one, opening secondary clients like gpspipe -R won't output anything 17:09 < Wizzup> ah, so it's not a kernel problem, ok 17:10 < Wizzup> once maemo-input-sounds is done (hopefully tonight) I will work on location stuff in case I can go on vacation and need gps, or until fmg is done with abook and we then look at rtcom 17:10 < Wizzup> in any case, I was wondering what the gps status is, but I think we'll start gpsd on demand, so that's fine 17:11 < Wizzup> from a pm pov, I assume closing the fd will stop gps recv? 17:11 < Wizzup> also, this is on the wiki: 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) 17:13 < tmlind> Wizzup: yeah so if hiking, you probably want to modprobe gnss_motmdm rate_ms=3000 or even higher to allow the soc to sleep inbetween 17:14 < tmlind> Wizzup: the default gpsd options only open device if there's a client and times out automatically 17:14 < Wizzup> interesting. 17:14 < Wizzup> regarding module - well noted 17:14 < Wizzup> I didn't know gpsd auto closed, that's nice. 17:15 < tmlind> i think i measured about 200 - 250 mW with gps enabled screen blanked etc </pre> == Regarding A-GPS in general, but also N900 and Droid 4 specifics == <pre> 17:15 < Wizzup> also ran into this: https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html 17:15 < Entitlement> Wizzup - [ Re: [gpsd-dev] Using multiple location sources to improve accuracy and r ] 17:15 < Wizzup> (regarding agps) 17:15 < tmlind> Wizzup: yeah so don't enable gpsd -n option, that will keep the gps open 17:15 < Wizzup> looks like ESR suggests to write a daemon that sits in the middle and mixes in agps info 17:15 < Wizzup> ok 17:16 < Wizzup> regarding rate_ms, I wonder if it makes more sense to keep it lower until a proper fix is found 17:16 < Wizzup> although I suppose that's only the reporting rate, so it probably doesn't matter 17:16 < tmlind> yeah it defaults to 1s so just leave it out by default 17:16 < tmlind> it will be some generic option eventually and not a module param 17:17 -!- z3ntu_ [z3ntumatri@gateway/shell/matrix.org/x-lnssiqwycssoqteb] has quit [Quit: Idle for 30+ days] 17:18 < tmlind> not sure how much stuff i'll get done over next few months in general, but at some point i'm planning to continue on the droid4-agps tool.. 17:19 < Wizzup> tmlind: what would that do? 17:19 < Wizzup> I figured agps could be done via with https://github.com/tajuma/supl 17:19 < Entitlement> Wizzup - [ GitHub - tajuma/supl ] 17:19 < Wizzup> s/via with/with this/ 17:20 -!- peetah [~peetah@cha92-9-82-236-202-86.fbx.proxad.net] has joined #maemo-leste 17:22 < bencoh> (tested and more or less working on maemo5, btw) 17:22 < Wizzup> bencoh: just now? 17:22 < bencoh> no 17:22 < Wizzup> :) 17:23 < bencoh> I used it to proxify supl requests to google 17:23 < tmlind> Wizzup: hmm maybe not sure. in this case we need to download qcom provided up to date xtra2.bin file for the gnss, not sure if the older formats work at all for the gnss 17:25 < bencoh> tmlind: I'd tend to think you would need to keep gps "always on" before the first fix 17:25 < bencoh> otherwise you will never get enough information from satellites 17:25 < bencoh> (unless you have agps/supl, of course) 17:26 < Wizzup> tmlind: from what I can tell that tool just takes lac/mcc/mns and such (like we can get from ofono or from modem directly) and just calls to a SUPL service? 17:27 < bencoh> Wizzup: google would even return you a rough position with those 17:27 < tmlind> bencoh: yes it does that already automatically and won't start idling until the fix is done 17:27 < bencoh> tmlind: ah, I see 17:28 < tmlind> Wizzup: yeh i figured, not sure if the modem nvram settings for supl are working or not, i somehow have an impression they're only working for some older modems, could be wrong 17:28 < Wizzup> I don't know enough about AGPS clearly, but from what I currently understand, it's just a data connection to a server with some cell data 17:29 < Wizzup> so I am not sure what the modem would do specifically 17:29 < Wizzup> I suppose there are probably many "assisted" methods 17:29 < bencoh> Wizzup: you're supposed to receive orbital data / almanac 17:30 < Wizzup> ah 17:30 < bencoh> and feed it to the gps subsystem 17:30 < tmlind> yeah this xtra2.bin stuff is an almanac in some proprietary format for a week i think 17:30 < Wizzup> oh, right, to actually feed it 17:30 < Wizzup> I get it now. 17:30 < Wizzup> when I was searching for methods to tell gpsd about agps nothing turned out, explains it now 17:31 < Wizzup> s/turned out/turned up/ 17:31 < bencoh> iiuc on n900, the modem itself manages the supl connection; the location daemon only acts as a proxy to provide it a tcp connection 17:31 < Wizzup> ok, yeah, so for the n900 we will have to RE some stuff 17:31 < bencoh> yeah 17:31 < tmlind> bencoh: afaik also mdm6600 nvram has something for supl server, not sure if it works though 17:32 < tmlind> bencoh: if you want to try it, you can tweak the nvram values with tcmdrw on github.com/tmlind 17:32 < bencoh> tmlind: meaning implementing/RE-ing such a proxy would make sense for both platforms 17:33 < tmlind> bencoh: hmm proxy running where? on the device? 17:33 < bencoh> on n900/maemo5, yeah 17:33 < bencoh> iirc it is location-proxy (forked on demand I think) 17:33 < tmlind> well i think the modem uses the supl server directly probably based on some requirements from the ministry of silly walks 17:34 < Wizzup> bencoh: there is location-proxy and location-daemon btw 17:34 < bencoh> it does; the "proxy" only provides the modem with a mean to open a tcp socket and read/write to it 17:34 < bencoh> Wizzup: indeed 17:34 < Wizzup> if you have more info please share :) 17:34 < Wizzup> I can RE some stuff, but want to RE the right things only 17:35 < bencoh> I haven't toyed with those for quite some time, but lemme see 17:35 < tmlind> well the thing to try with droid4 mdm6600 would be to configure supl server in nvram, start modem data connection, then gps and see how fast it gets a fix 17:38 < tmlind> i'd try clearing openpst NV_AAGPS_XTRA_ENABLED_I value to try to disable xtra2.bin use, then try to configure whatever nvram values there might be for a supl server, sorry no idea what those entries might be but i see the dumps contain some url in hex format 17:40 < bencoh> Wizzup: see /usr/lib/liblas.so.0.0.0 17:41 < bencoh> especially the las_socket_* 17:41 < bencoh> location-proxy refers to those 17:42 < Wizzup> hm 32K 17:42 < Wizzup> this is likely all n900 specific though right? 17:42 < bencoh> Wizzup: http://pastebin.notk.org/pastebin.php?show=f7f7b371d 17:42 < Entitlement> bencoh - [ pastebin private pastebin - collaborative debugging tool ] 17:42 < bencoh> most likely n900-specific yeah 17:42 < tmlind> hmm so a quick search for the NV_AAGPS_XTRA_ENABLED_I points to some earlier pastebin page at https://pastebin.com/dyfsUcHc, maybe try configuring those and disable xtra stuff? 17:42 < Entitlement> tmlind - [ QPST 378 NV Items that are in i535 but NOT in i535 dev ed - Pastebin.com ] 17:43 < bencoh> tmlind: I don't think supl server address would go into nvram 17:43 < Wizzup> bencoh: ah, so you're suggesting we make some generic "how to write supl data to a modem" lib? 17:43 < bencoh> tmlind: well, unless it has a mean to actually ask for a specific supl server from the AP processor 17:43 < tmlind> bencoh: i'm pretty sure the uri goes to nvram, see NV_CGPS_UMTS_PDE_SERVER_ADDR_URL_I in the link above 17:43 < bencoh> oh 17:44 < bencoh> well, on n900/maemo5, the host gets to decide on that 17:44 < tmlind> ok 17:45 < bencoh> Wizzup: I guess we would want a "generic" glue lib with support for various (two?) platforms 17:45 < tmlind> bencoh: there seems to be a bunch PDE related nvram entries, see libopenpst dm_nv.h file 17:46 < bencoh> right 17:47 < bencoh> Actually I wonder if the supl connection would need to go through the host cpu at all on the mdm6600 17:47 < tmlind> bencoh: no afaik it can't 17:48 < bencoh> it might try and use the gprs/umts data channels 17:48 < tmlind> i think it has to 17:48 < bencoh> without even bothering with the host 17:48 < tmlind> right 17:48 < bencoh> it's a completely different design then 17:48 < bencoh> meaning it should work automagically once we setup pde server properly 17:49 < tmlind> yeah it should hopefully unless it's working only in the xtra2.bin mode 17:49 < bencoh> and that it'll stop working forever once supl servers break support for it 17:49 < tmlind> bencoh: so i did also a tool for the xtra2.bin stuff but it's not complete, also on my github page droid4-agps or something like that 17:49 < bencoh> (unlike n900, where we managed to somehow get some kind of support using supl-proxy from tajuma) 17:50 < tmlind> bencoh: at least the supl stuff is a standard format, let's hope it works :) 17:51 < bencoh> it's "standard" until google decides some input fields become mandatory 17:51 < bencoh> but yeah 17:51 < tmlind> i think there are other supl servers available too, right? 17:51 < Wizzup> bencoh: there were other supl servers I think 17:51 < bencoh> (I think that's the reason supl.google.com doesn't work on n900 without any proxy) 17:51 < Wizzup> bencoh: oh? 17:51 < bencoh> well, it depends on your phone service provider 17:52 < bencoh> vodaphone has (had?) one for their customers, but it's not available from outside their network 17:52 < bencoh> nokia died 17:52 < bencoh> I think sony had one, but ... 17:53 < bencoh> we could also run one, but we'd need to write a fair bit of code for that 17:53 < Wizzup> didn't see any code for it so far 17:53 < Wizzup> (googling around) 17:54 < Wizzup> as in, for a supl server 17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8 17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves version ] 17:55 < bencoh> that's for the rrlp part 17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to wrap the RRLP payload in SUPL packets 17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort of what ntpd does 17:57 < Wizzup> it would be nice to have a supl server one can just run, though 17:57 < tmlind> yup 17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900 17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;) 17:57 < Wizzup> (for leste, to at least get the frameworks in place) 17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix 17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8 17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves version ] 17:55 < bencoh> that's for the rrlp part 17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to wrap the RRLP payload in SUPL packets 17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort of what ntpd does 17:57 < Wizzup> it would be nice to have a supl server one can just run, though 17:57 < tmlind> yup 17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900 17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;) 17:57 < Wizzup> (for leste, to at least get the frameworks in place) 17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix 17:58 < Wizzup> I should probably do it on fremantle too, didn't look at the proxying 17:58 < bencoh> (I think it stopped working at some point, but I haven't investigated it. It might be a cert issue) 17:58 < tmlind> well i meant running a proxying supl server on maemo.org picking data from various sources so devices would just point to the maemo supl server 17:58 < bencoh> Wizzup: Sicelo eventually wrote a howto https://wiki.maemo.org/N900_GPS_Proxy 17:58 < Entitlement> bencoh - [ N900 GPS Proxy - maemo.org wiki ] 17:59 < bencoh> tmlind: *nod* 17:59 < Wizzup> check 17:59 < Wizzup> tmlind: ah, right 17:59 < Wizzup> that's definitely a good stopgap at least 18:00 < bencoh> We almost have the code for that 18:00 < tmlind> yeah then adding supl data from some open source data feed could be just added 18:00 < bencoh> we just need to add multi-client support to supl-proxy 18:00 < tmlind> cool 18:01 < bencoh> err, except that supl-proxy will actually fetch data for every request 18:01 < tmlind> heh that probably creates a google maps traffic jam to where that server is hosted :) 18:01 < bencoh> :)) 18:02 < tmlind> not sure if there are some legal aspects to consider there, not familiar with the supl stuff really 18:02 < bencoh> you need to supply a valid cell (mnc/lac/whatever) coordinate, and supl response is customized accordingly 18:02 < bencoh> afaict 18:02 < tmlind> huh why do you need mnc/lac? 18:03 < tmlind> to limit the data size? 18:03 < bencoh> I'm pretty certain you wouldn't need it in theory to get a full ephemeric/almanac dump 18:03 < tmlind> bbl 18:03 < bencoh> but iirc it's mandatory for supl.google.com 18:04 < bencoh> (I can see a pretty good reason for that, actually ... google loves knowing where you are) 18:06 < Wizzup> yeah 18:06 < Wizzup> from 3) A-GPS here , there seem to be only a few https://www.reddit.com/r/privacy/comments/cldrym/how_to_degoogle_lineageos_in_2019/ 18:06 < Entitlement> Wizzup - [ How to deGoogle LineageOS in 2019 : privacy ] 18:06 < Wizzup> (providers that run a supl server) 18:12 < bencoh> wow, supl.sonyericsson.com actually works as well 18:13 < bencoh> and vodafone too. funny, last time I tried I couldn't use it 18:17 < tmlind> cool, anyways multiple source for the proxying supl server would be best, sort of like with nptd 18:17 * bencoh nods </pre> 53cd487465588ea0de57b384c5b89a4050871c3b 795 794 2020-06-29T20:42:38Z Wizzup 4 wikitext text/x-wiki == Fremantle Gypsy == is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon". location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD. == Relevant URLs == * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363 * <s>(On combining multiple gps sources such as A-GPS/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html</s> (not actually relevant, A-GPS needs to fed to the GPS driver/subsystem, not merged as info into gpsd) * supl implementation: https://github.com/tajuma/supl * https://talk.maemo.org/showthread.php?t=93910 * https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c == Regarding Droid 4 GPS == <pre> 17:05 < Wizzup> tmlind: wrt gps on the droid, you said there is currently a bug that allows opening /dev/gnss* only once? 17:09 < tmlind> Wizzup: i think that was a bug in gpsd, did not happen last time i tried. if you hit that one, opening secondary clients like gpspipe -R won't output anything 17:09 < Wizzup> ah, so it's not a kernel problem, ok 17:10 < Wizzup> once maemo-input-sounds is done (hopefully tonight) I will work on location stuff in case I can go on vacation and need gps, or until fmg is done with abook and we then look at rtcom 17:10 < Wizzup> in any case, I was wondering what the gps status is, but I think we'll start gpsd on demand, so that's fine 17:11 < Wizzup> from a pm pov, I assume closing the fd will stop gps recv? 17:11 < Wizzup> also, this is on the wiki: 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) 17:13 < tmlind> Wizzup: yeah so if hiking, you probably want to modprobe gnss_motmdm rate_ms=3000 or even higher to allow the soc to sleep inbetween 17:14 < tmlind> Wizzup: the default gpsd options only open device if there's a client and times out automatically 17:14 < Wizzup> interesting. 17:14 < Wizzup> regarding module - well noted 17:14 < Wizzup> I didn't know gpsd auto closed, that's nice. 17:15 < tmlind> i think i measured about 200 - 250 mW with gps enabled screen blanked etc </pre> == Regarding A-GPS in general, but also N900 and Droid 4 specifics == <pre> 17:15 < Wizzup> also ran into this: https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html 17:15 < Entitlement> Wizzup - [ Re: [gpsd-dev] Using multiple location sources to improve accuracy and r ] 17:15 < Wizzup> (regarding agps) 17:15 < tmlind> Wizzup: yeah so don't enable gpsd -n option, that will keep the gps open 17:15 < Wizzup> looks like ESR suggests to write a daemon that sits in the middle and mixes in agps info 17:15 < Wizzup> ok 17:16 < Wizzup> regarding rate_ms, I wonder if it makes more sense to keep it lower until a proper fix is found 17:16 < Wizzup> although I suppose that's only the reporting rate, so it probably doesn't matter 17:16 < tmlind> yeah it defaults to 1s so just leave it out by default 17:16 < tmlind> it will be some generic option eventually and not a module param 17:17 -!- z3ntu_ [z3ntumatri@gateway/shell/matrix.org/x-lnssiqwycssoqteb] has quit [Quit: Idle for 30+ days] 17:18 < tmlind> not sure how much stuff i'll get done over next few months in general, but at some point i'm planning to continue on the droid4-agps tool.. 17:19 < Wizzup> tmlind: what would that do? 17:19 < Wizzup> I figured agps could be done via with https://github.com/tajuma/supl 17:19 < Entitlement> Wizzup - [ GitHub - tajuma/supl ] 17:19 < Wizzup> s/via with/with this/ 17:20 -!- peetah [~peetah@cha92-9-82-236-202-86.fbx.proxad.net] has joined #maemo-leste 17:22 < bencoh> (tested and more or less working on maemo5, btw) 17:22 < Wizzup> bencoh: just now? 17:22 < bencoh> no 17:22 < Wizzup> :) 17:23 < bencoh> I used it to proxify supl requests to google 17:23 < tmlind> Wizzup: hmm maybe not sure. in this case we need to download qcom provided up to date xtra2.bin file for the gnss, not sure if the older formats work at all for the gnss 17:25 < bencoh> tmlind: I'd tend to think you would need to keep gps "always on" before the first fix 17:25 < bencoh> otherwise you will never get enough information from satellites 17:25 < bencoh> (unless you have agps/supl, of course) 17:26 < Wizzup> tmlind: from what I can tell that tool just takes lac/mcc/mns and such (like we can get from ofono or from modem directly) and just calls to a SUPL service? 17:27 < bencoh> Wizzup: google would even return you a rough position with those 17:27 < tmlind> bencoh: yes it does that already automatically and won't start idling until the fix is done 17:27 < bencoh> tmlind: ah, I see 17:28 < tmlind> Wizzup: yeh i figured, not sure if the modem nvram settings for supl are working or not, i somehow have an impression they're only working for some older modems, could be wrong 17:28 < Wizzup> I don't know enough about AGPS clearly, but from what I currently understand, it's just a data connection to a server with some cell data 17:29 < Wizzup> so I am not sure what the modem would do specifically 17:29 < Wizzup> I suppose there are probably many "assisted" methods 17:29 < bencoh> Wizzup: you're supposed to receive orbital data / almanac 17:30 < Wizzup> ah 17:30 < bencoh> and feed it to the gps subsystem 17:30 < tmlind> yeah this xtra2.bin stuff is an almanac in some proprietary format for a week i think 17:30 < Wizzup> oh, right, to actually feed it 17:30 < Wizzup> I get it now. 17:30 < Wizzup> when I was searching for methods to tell gpsd about agps nothing turned out, explains it now 17:31 < Wizzup> s/turned out/turned up/ 17:31 < bencoh> iiuc on n900, the modem itself manages the supl connection; the location daemon only acts as a proxy to provide it a tcp connection 17:31 < Wizzup> ok, yeah, so for the n900 we will have to RE some stuff 17:31 < bencoh> yeah 17:31 < tmlind> bencoh: afaik also mdm6600 nvram has something for supl server, not sure if it works though 17:32 < tmlind> bencoh: if you want to try it, you can tweak the nvram values with tcmdrw on github.com/tmlind 17:32 < bencoh> tmlind: meaning implementing/RE-ing such a proxy would make sense for both platforms 17:33 < tmlind> bencoh: hmm proxy running where? on the device? 17:33 < bencoh> on n900/maemo5, yeah 17:33 < bencoh> iirc it is location-proxy (forked on demand I think) 17:33 < tmlind> well i think the modem uses the supl server directly probably based on some requirements from the ministry of silly walks 17:34 < Wizzup> bencoh: there is location-proxy and location-daemon btw 17:34 < bencoh> it does; the "proxy" only provides the modem with a mean to open a tcp socket and read/write to it 17:34 < bencoh> Wizzup: indeed 17:34 < Wizzup> if you have more info please share :) 17:34 < Wizzup> I can RE some stuff, but want to RE the right things only 17:35 < bencoh> I haven't toyed with those for quite some time, but lemme see 17:35 < tmlind> well the thing to try with droid4 mdm6600 would be to configure supl server in nvram, start modem data connection, then gps and see how fast it gets a fix 17:38 < tmlind> i'd try clearing openpst NV_AAGPS_XTRA_ENABLED_I value to try to disable xtra2.bin use, then try to configure whatever nvram values there might be for a supl server, sorry no idea what those entries might be but i see the dumps contain some url in hex format 17:40 < bencoh> Wizzup: see /usr/lib/liblas.so.0.0.0 17:41 < bencoh> especially the las_socket_* 17:41 < bencoh> location-proxy refers to those 17:42 < Wizzup> hm 32K 17:42 < Wizzup> this is likely all n900 specific though right? 17:42 < bencoh> Wizzup: http://pastebin.notk.org/pastebin.php?show=f7f7b371d 17:42 < Entitlement> bencoh - [ pastebin private pastebin - collaborative debugging tool ] 17:42 < bencoh> most likely n900-specific yeah 17:42 < tmlind> hmm so a quick search for the NV_AAGPS_XTRA_ENABLED_I points to some earlier pastebin page at https://pastebin.com/dyfsUcHc, maybe try configuring those and disable xtra stuff? 17:42 < Entitlement> tmlind - [ QPST 378 NV Items that are in i535 but NOT in i535 dev ed - Pastebin.com ] 17:43 < bencoh> tmlind: I don't think supl server address would go into nvram 17:43 < Wizzup> bencoh: ah, so you're suggesting we make some generic "how to write supl data to a modem" lib? 17:43 < bencoh> tmlind: well, unless it has a mean to actually ask for a specific supl server from the AP processor 17:43 < tmlind> bencoh: i'm pretty sure the uri goes to nvram, see NV_CGPS_UMTS_PDE_SERVER_ADDR_URL_I in the link above 17:43 < bencoh> oh 17:44 < bencoh> well, on n900/maemo5, the host gets to decide on that 17:44 < tmlind> ok 17:45 < bencoh> Wizzup: I guess we would want a "generic" glue lib with support for various (two?) platforms 17:45 < tmlind> bencoh: there seems to be a bunch PDE related nvram entries, see libopenpst dm_nv.h file 17:46 < bencoh> right 17:47 < bencoh> Actually I wonder if the supl connection would need to go through the host cpu at all on the mdm6600 17:47 < tmlind> bencoh: no afaik it can't 17:48 < bencoh> it might try and use the gprs/umts data channels 17:48 < tmlind> i think it has to 17:48 < bencoh> without even bothering with the host 17:48 < tmlind> right 17:48 < bencoh> it's a completely different design then 17:48 < bencoh> meaning it should work automagically once we setup pde server properly 17:49 < tmlind> yeah it should hopefully unless it's working only in the xtra2.bin mode 17:49 < bencoh> and that it'll stop working forever once supl servers break support for it 17:49 < tmlind> bencoh: so i did also a tool for the xtra2.bin stuff but it's not complete, also on my github page droid4-agps or something like that 17:49 < bencoh> (unlike n900, where we managed to somehow get some kind of support using supl-proxy from tajuma) 17:50 < tmlind> bencoh: at least the supl stuff is a standard format, let's hope it works :) 17:51 < bencoh> it's "standard" until google decides some input fields become mandatory 17:51 < bencoh> but yeah 17:51 < tmlind> i think there are other supl servers available too, right? 17:51 < Wizzup> bencoh: there were other supl servers I think 17:51 < bencoh> (I think that's the reason supl.google.com doesn't work on n900 without any proxy) 17:51 < Wizzup> bencoh: oh? 17:51 < bencoh> well, it depends on your phone service provider 17:52 < bencoh> vodaphone has (had?) one for their customers, but it's not available from outside their network 17:52 < bencoh> nokia died 17:52 < bencoh> I think sony had one, but ... 17:53 < bencoh> we could also run one, but we'd need to write a fair bit of code for that 17:53 < Wizzup> didn't see any code for it so far 17:53 < Wizzup> (googling around) 17:54 < Wizzup> as in, for a supl server 17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8 17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves version ] 17:55 < bencoh> that's for the rrlp part 17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to wrap the RRLP payload in SUPL packets 17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort of what ntpd does 17:57 < Wizzup> it would be nice to have a supl server one can just run, though 17:57 < tmlind> yup 17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900 17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;) 17:57 < Wizzup> (for leste, to at least get the frameworks in place) 17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix 17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8 17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves version ] 17:55 < bencoh> that's for the rrlp part 17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to wrap the RRLP payload in SUPL packets 17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort of what ntpd does 17:57 < Wizzup> it would be nice to have a supl server one can just run, though 17:57 < tmlind> yup 17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900 17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;) 17:57 < Wizzup> (for leste, to at least get the frameworks in place) 17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix 17:58 < Wizzup> I should probably do it on fremantle too, didn't look at the proxying 17:58 < bencoh> (I think it stopped working at some point, but I haven't investigated it. It might be a cert issue) 17:58 < tmlind> well i meant running a proxying supl server on maemo.org picking data from various sources so devices would just point to the maemo supl server 17:58 < bencoh> Wizzup: Sicelo eventually wrote a howto https://wiki.maemo.org/N900_GPS_Proxy 17:58 < Entitlement> bencoh - [ N900 GPS Proxy - maemo.org wiki ] 17:59 < bencoh> tmlind: *nod* 17:59 < Wizzup> check 17:59 < Wizzup> tmlind: ah, right 17:59 < Wizzup> that's definitely a good stopgap at least 18:00 < bencoh> We almost have the code for that 18:00 < tmlind> yeah then adding supl data from some open source data feed could be just added 18:00 < bencoh> we just need to add multi-client support to supl-proxy 18:00 < tmlind> cool 18:01 < bencoh> err, except that supl-proxy will actually fetch data for every request 18:01 < tmlind> heh that probably creates a google maps traffic jam to where that server is hosted :) 18:01 < bencoh> :)) 18:02 < tmlind> not sure if there are some legal aspects to consider there, not familiar with the supl stuff really 18:02 < bencoh> you need to supply a valid cell (mnc/lac/whatever) coordinate, and supl response is customized accordingly 18:02 < bencoh> afaict 18:02 < tmlind> huh why do you need mnc/lac? 18:03 < tmlind> to limit the data size? 18:03 < bencoh> I'm pretty certain you wouldn't need it in theory to get a full ephemeric/almanac dump 18:03 < tmlind> bbl 18:03 < bencoh> but iirc it's mandatory for supl.google.com 18:04 < bencoh> (I can see a pretty good reason for that, actually ... google loves knowing where you are) 18:06 < Wizzup> yeah 18:06 < Wizzup> from 3) A-GPS here , there seem to be only a few https://www.reddit.com/r/privacy/comments/cldrym/how_to_degoogle_lineageos_in_2019/ 18:06 < Entitlement> Wizzup - [ How to deGoogle LineageOS in 2019 : privacy ] 18:06 < Wizzup> (providers that run a supl server) 18:12 < bencoh> wow, supl.sonyericsson.com actually works as well 18:13 < bencoh> and vodafone too. funny, last time I tried I couldn't use it 18:17 < tmlind> cool, anyways multiple source for the proxying supl server would be best, sort of like with nptd 18:17 * bencoh nods </pre> 912fa5e1f13843940f817a0551f1759cc70486ac Motorola Droid 4 0 50 796 789 2020-07-02T06:50:08Z Xsetiadi 33 /* Make Audio Automaticaly set up */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || No userspace yet (should be in mce) |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 83c075d5d83e10afb0b9886c38208ee20e1abee9 809 796 2020-07-23T18:10:39Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || WIP || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || |- | HDMI-out || WIP || works |- | TV-out || N/A || |- | GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 859990c8d936c2f36307b65a78216743736da191 815 809 2020-08-16T10:30:51Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294 |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet |- | Proximity sensor || WIP || Sensor works, not yet exposed as evdev device |- | Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8 |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] 2a3f18a07a7cc39f6aeda401139f1c4a566b0a36 836 815 2020-10-21T12:41:40Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] a0b00560b3d9013d013e3761d1a0a78414f97fc1 837 836 2020-10-21T12:42:19Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] f5d40f70787401b3b381c94e95412fb1dcb859cc 841 837 2020-10-22T17:47:01Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] cb87a566f28275efd6cb3a882761e6767a153ac1 842 841 2020-10-22T18:14:34Z Sicelo 5 /* Updating */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg </gallery> [[Category:Device]] ee1bde059df148700f7847a97ced9ca3cb35e6f4 Nokia N900 0 48 797 747 2020-07-02T09:07:01Z Parazyd 1 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ Image archive: http://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] e913c4b966f938f8ee4c6b802d4adde47bd20bd2 798 797 2020-07-02T09:07:37Z Parazyd 1 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely. * Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful. Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] 6970dfad254cccd44848f8c03d81f1907bd153c7 805 798 2020-07-09T20:30:44Z Sicelo 5 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. [[Category:Device]] f88d421a4b4d940d21f8087bf0d5356397b511c7 806 805 2020-07-09T20:32:31Z Sicelo 5 Rearrange wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 480f182a26cde9cebd5342597b09418264a62d16 810 806 2020-08-13T12:47:39Z L29Ah 41 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Involves installing non-free firmware |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Not yet || Available as input device, needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Not yet || |- | Ambient Light Sensor || Not yet || |- | Vibration Motor || Yes || No integration yet |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 2aab7313e442bca3b7308404e728b0a659034794 813 810 2020-08-16T10:21:46Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || WIP || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] befa808277442f7378554eb4adf0daa800bd2e3c 814 813 2020-08-16T10:24:46Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] b1d189c992aa1c488f3218c3f9c433188aed550a Status 0 64 799 700 2020-07-04T11:13:52Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |} d30df1a3d0f61460ed935403540f08029a9d108c 818 799 2020-10-03T11:38:42Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || WIP || Works with themes (available in [[Leste Extras]] || |} eff8f3a1dd466da9f76839818cabe1d6a88ed3a4 819 818 2020-10-03T11:39:08Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || WIP || Qalendar UI, evolution backend and syncing being worked on || |} 9cf8dd3ed2e2d18d714f1823fd40bd144981e567 831 819 2020-10-07T15:50:08Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |} 1a739ad88b5b794b9805f12662931110f3bf0b61 Status/Audio 0 108 800 2020-07-04T11:17:56Z Wizzup 4 Created page with "== Current status == * Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the..." wikitext text/x-wiki == Current status == * Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the default. * We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc. == Development notes == For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc. Unsorted (useful) links: * https://www.systutorials.com/docs/linux/man/1-alsaucm/ * https://github.com/alsa-project/alsa-ucm-conf * https://wiki.postmarketos.org/wiki/Alsa_UCM * https://wiki.archlinux.org/index.php/PulseAudio/Examples * https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio b0b111c0e7f5e29c6ac32f403b95bb61bd621e9e 801 800 2020-07-04T19:20:51Z Wizzup 4 wikitext text/x-wiki == Current status == * Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the default. * We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc. == Development notes == For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc. Unsorted (useful) links: * https://www.systutorials.com/docs/linux/man/1-alsaucm/ * https://github.com/alsa-project/alsa-ucm-conf * https://wiki.postmarketos.org/wiki/Alsa_UCM * https://wiki.archlinux.org/index.php/PulseAudio/Examples * https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio * https://wiki.merproject.org/wiki/Nemo/Audio 5409c232033c6537d6de48e919e7e1850306e98f 802 801 2020-07-06T00:51:37Z Sicelo 5 added possibly useful link. remove otherwise wikitext text/x-wiki == Current status == * Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the default. * We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc. == Development notes == For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc. Unsorted (useful) links: * https://www.systutorials.com/docs/linux/man/1-alsaucm/ * https://github.com/alsa-project/alsa-ucm-conf * https://wiki.postmarketos.org/wiki/Alsa_UCM * https://wiki.archlinux.org/index.php/PulseAudio/Examples * https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio * https://wiki.merproject.org/wiki/Nemo/Audio * http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA f9faafb558718ba0448651b395418cb14b6869ff 803 802 2020-07-06T00:56:25Z Sicelo 5 /* Development notes */ wikitext text/x-wiki == Current status == * Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the default. * We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc. == Development notes == For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc. Unsorted (useful) links: * https://www.systutorials.com/docs/linux/man/1-alsaucm/ * https://github.com/alsa-project/alsa-ucm-conf * https://wiki.postmarketos.org/wiki/Alsa_UCM * https://wiki.archlinux.org/index.php/PulseAudio/Examples * https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio * https://wiki.merproject.org/wiki/Nemo/Audio * (Fremantle/N900-specific) http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA * (Fremantle/N900-specific) https://blog.linuxplumbersconf.org/2009/slides/Jyri-Sarha-audio_miniconf_slides.pdf ab7793da1314af534acc9cd65c835942b577b64b HowTo 0 107 804 791 2020-07-06T12:42:33Z Parazyd 1 /* How do I use the virtual keyboard */ wikitext text/x-wiki This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How do I lock and unlock the device? === If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device. If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device. ('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.) Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider. === How do I play music? === Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like. In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player === How do I use the virtual keyboard === Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked. It should, however, be enabled by default. The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard). '''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will highlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'. == Motorola Droid 4 == === How do I improve battery life? === In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time. But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this. Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly. === How do I show the special keys virtual keyboard? === Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included. See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s) == Nokia N900 == === How do I show the special keys virtual keyboard? === On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included. See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s) 3616d25e2292fbf78bc8d816e53dd884888e7b38 Image Builder 0 100 807 651 2020-07-21T12:34:35Z Parazyd 1 /* Maemo 7 Leste */ wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == '''[https://github.com/maemo-leste/image-builder Github]''' # Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre> # In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ ./init.sh # (only needed on first run) $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_image_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * raspi4 * rock64 * pinephone-dontbeevil * pinephone * pinetab * sunxi * turbox-twister 5b09c00d65a64bd06e9cff8aeb4960dba1f14cca Development 0 61 808 735 2020-07-21T12:35:22Z Parazyd 1 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 399bb1f69e52be8311bcc71c050755dfefc2f88f Main Page 0 1 811 790 2020-08-13T14:04:22Z Sicelo 5 /* Description */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 84d790f349198d48c43c4c36c1de2b5b0af6d80e 812 811 2020-08-13T17:28:28Z Sicelo 5 /* Links */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 59d320ef513533ede7714f95c8a5f791bdf8ab1f Development/Tasks 0 92 816 720 2020-08-16T10:44:46Z Sicelo 5 /* Applications */ wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start, [[User:Wizzup]] picking up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ || Mainly usable already! |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || wIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} 812bed9f6e4ddb65e64c7397978fd93cbe0a1caf Development/Building Packages 0 80 817 721 2020-09-30T08:23:41Z Parazyd 1 Ascii to Beowulf wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/beowulf Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste beowulf main contrib non-free deb https://maedevu.maemo.org/extras beowulf main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/beowulf - main branch for Devuan Beowulf target # maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. == Consideration for HAM == For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the <code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through <code>.desktop</code> files, while the former is done in <code>debian/control</code>. 62aa73321a1c58db3defc5afe802039254981013 Calendar 0 109 820 2020-10-03T12:02:53Z Wizzup 4 Created page with "= Calendar = == Qalendar == == Synchronising == == TODO == * It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb"..." wikitext text/x-wiki = Calendar = == Qalendar == == Synchronising == == TODO == * It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb", this needs to be figured out before this can work * syncevolution with radicale as server works, and syncs to the evolution server, but that is not what we want. Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 * 78d6bdd319e17eb655cbb1933d210778be340b7a 821 820 2020-10-03T14:13:28Z Wizzup 4 wikitext text/x-wiki = Calendar = == Qalendar == == Synchronising == == TODO == * It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb", this needs to be figured out before this can work * syncevolution with radicale as server works, and syncs to the evolution server, but that is not what we want. * cal-home-widget is also ported Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 * 1e0b07e3e6e10df367045529f5a212a2f52b4b39 822 821 2020-10-03T14:13:55Z Wizzup 4 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == == Synchronising == == TODO == * It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb", this needs to be figured out before this can work * syncevolution with radicale as server works, and syncs to the evolution server, but that is not what we want. * cal-home-widget is also ported Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 * 84df930c59278f6a4043ede727d0b3ad56abd945 823 822 2020-10-03T15:31:04Z Wizzup 4 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == == Synchronising == Looks like syncevolution has a maemo backend (syncmaemocal.so), but using the backend currently throws an error: <pre> user@devuan:~$ syncevolution --print-databases backend=maemo-events maemo-events: Maemo Calendar: not enabled during compilation or not usable in the current environment </pre> Working on fixing that now. == TODO == * It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb", this needs to be figured out before this can work * syncevolution with radicale as server works, and syncs to the evolution server, but that is not what we want. * cal-home-widget is also ported Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 * 6971fc8e03c1851a29a9bf8c8f5def198e94f3d0 824 823 2020-10-04T20:26:16Z Wizzup 4 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == == Synchronising == With fixed calendar-backend (https://github.com/maemo-leste/calendar-backend/commit/c6e9ef0db493118d44a2958f71180ac70609b071) and syncevolution built with maemo backend, it is possible to sync radicale to the device. (Instructions to follow) == TODO == * cal-home-widget is also ported Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 * 329ebfc1f8d02ae6e142b0dd01803a6ce142df58 825 824 2020-10-05T17:24:52Z Wizzup 4 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == == Synchronising == (On maemo/beowulf-devel with a radicale server set up) Install: <pre> apt install qalendar syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> (using ssh tunneling). <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalecal </pre> == TODO == * cal-home-widget is also ported Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 b31463b1ec3867b8c57e9a80ca0c15dddc9bcb05 826 825 2020-10-05T17:26:03Z Wizzup 4 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar == Synchronising == (On maemo/beowulf-devel with a radicale server set up) Install: <pre> apt install qalendar syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> (using ssh tunneling). <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalecal </pre> == TODO == * cal-home-widget is also ported Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 79d2b1b9b6d356aec153591888bb65fae6f1d5c3 827 826 2020-10-05T17:30:30Z Wizzup 4 clarify ssh tunnel section wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar == Synchronising == (On maemo/beowulf-devel with a radicale server set up) Install: <pre> apt install qalendar syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalecal </pre> == TODO == * cal-home-widget is also ported Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 947f942de4c44689213e9a12433216dee049a055 828 827 2020-10-05T17:42:54Z Sicelo 5 /* TODO */ wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar == Synchronising == (On maemo/beowulf-devel with a radicale server set up) Install: <pre> apt install qalendar syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalecal </pre> * cal-home-widget has also been ported == TODO == * port Syncevolution GUI Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 9d47a2ffa42a1f786dd2588997ed32f15b79cce2 829 828 2020-10-05T17:44:26Z Sicelo 5 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Synchronising == (On maemo/beowulf-devel with a radicale server set up) Install: <pre> apt install qalendar syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalecal </pre> == TODO == * port Syncevolution GUI Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 becc411cff67ddb1222bcd198875a9e3edcc4c7a 830 829 2020-10-05T19:36:32Z Wizzup 4 /* Synchronising */ wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Synchronising == (On maemo/beowulf-devel with a radicale server set up) Install: <pre> apt install qalendar syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == TODO == * port Syncevolution GUI Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 a6273c1ad7ef4f69fa9bb6b20cc7e0a8602c373d 832 830 2020-10-08T14:41:58Z Wizzup 4 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == (On maemo/beowulf-devel with a radicale server set up) Install: <pre> apt install qalendar syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == TODO == * port Syncevolution GUI Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 ae6e44448c9fa83418e6a57ec3d24cf0b9feb2ae 833 832 2020-10-08T14:42:14Z Wizzup 4 Remove -devel reference wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == Install: <pre> apt install qalendar syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == TODO == * port Syncevolution GUI Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 67e3edd7f173fb2caf62a4d037be144d2d52a9ce 834 833 2020-10-08T14:42:22Z Wizzup 4 /* Synchronising */ wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == Install: <pre> apt install syncevolution </pre> Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == TODO == * port Syncevolution GUI Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 42f92595f7ff31d2a5302a397fc022393c0931de 835 834 2020-10-08T14:42:58Z Wizzup 4 fix formatting wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == Install: <pre> apt install syncevolution </pre> Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == TODO == * port Syncevolution GUI Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 5f349fcae9f06c6fe0bbe057dc4e394f1d6cf70c File:Bionic.jpg 6 110 838 2020-10-22T17:24:29Z Uvos 39 Motorola Droid Bionic running leste wikitext text/x-wiki Motorola Droid Bionic running leste 98eaa671f102871100b7f5028348118e11c037c6 Motorola Droid Bionic 0 111 839 2020-10-22T17:43:25Z Uvos 39 Created page with "{{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR..." wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || No || Needs kernel work |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || Yes || needs mce work |- | Ambient Light Sensor || WIP || Needs mce work |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://maedevu.maemo.org/images/droid4/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 7a61782a7ee205c2bab30082d3d4614812f99296 840 839 2020-10-22T17:46:46Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || No || Needs kernel work |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || Yes || needs mce work |- | Ambient Light Sensor || WIP || Needs mce work |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 4d8df326853d46500bc89d47cf40e9ec185d665a 843 840 2020-10-22T18:15:47Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || No || Needs kernel work |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || Yes || needs mce work |- | Ambient Light Sensor || WIP || Needs mce work |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || - | Idle power consumption || ~350mW || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] fd38226c263540d887fbcc650154f716b3404c9e 844 843 2020-10-22T18:16:15Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || No || Needs kernel work |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || Yes || needs mce work |- | Ambient Light Sensor || WIP || Needs mce work |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~350mW || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 047d79bc65f484373b94890a104c37d5db1214c5 Terminal 0 112 845 2020-10-25T13:46:44Z Parazyd 1 Inital page with instructions on editing the soft key bar. wikitext text/x-wiki The default terminal emulator provided in Maemo Leste is '''osso-xterm'''. == Modifying soft keys == Through gconf, it is possible to modify the soft keys that show up on the bottom bar of osso-xterm. For example, to have a series like "Tab, Escape, Arrow Down, Arrow Up" we would issue two gconftool commands, one which would modify the labels, and the other which would actually map it to the keys. <code> $ gconftool-2 --set -t list --list-type string /apps/osso/xterm/key_labels "[Tab,Escape,Dn,Up]" $ gconftool-2 --set -t list --list-type string /apps/osso/xterm/keys "[Tab,Escape,Down,Up]" </code> '''Further reading:''' talk.maemo.org thread: https://talk.maemo.org/archive/index.php/t-34926.html Archived version: https://web.archive.org/web/20201025134527/https://talk.maemo.org/archive/index.php/t-34926.html 18fe28ec50b6a3e6d62b7fcd2b847d8cb41e5763 Status 0 64 846 831 2020-10-25T13:49:37Z Parazyd 1 Link to Terminal page. wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk. |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |} 7231658298f77a6b52cf8ae1467dcf2db93e6076 883 846 2020-12-23T11:54:04Z Uvos 39 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || WIP || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |} a78f6765be2b9f8cd34bda0fca7a6b8dbe4ec2e4 889 883 2020-12-27T20:11:51Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || WIP || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || |} 7dbae448ae080bca9528d7fd7bedd8b24648a384 892 889 2020-12-27T20:14:39Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || WIP || gpsd or liblocation/location-daemon || Fremantle location services are closed |- | [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo |} cc3138784f007b75dc2f39288f0cfe221cdf13ec Motorola Droid Bionic 0 111 847 844 2020-11-01T21:41:34Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || No || Needs kernel work |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || Yes || needs mce work |- | Ambient Light Sensor || WIP || Needs mce work |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~350mW || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 6a3fe0e37eccc8ab0c7e81551219c6e85523cd15 848 847 2020-11-01T21:47:42Z Wizzup 4 /* Unlocking the modem for usage in Europe */ wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || No || Needs kernel work |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || Yes || needs mce work |- | Ambient Light Sensor || WIP || Needs mce work |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~350mW || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] efc7966e2ede501a68a868e75d3e339a390c655c 873 848 2020-12-18T11:03:24Z Uvos 39 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || No || Needs kernel work |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || Yes || needs mce work |- | Ambient Light Sensor || WIP || Needs mce work |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~70mW || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 6d05917f5eb6eae7e7497ca6817e597ba344f2c6 874 873 2020-12-18T11:03:52Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || No || Needs kernel work |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || Yes || needs mce work |- | Ambient Light Sensor || WIP || Needs mce work |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~70mW || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 1c8722d7eac9ae052bc0db3300f1f3ab98b601aa 875 874 2020-12-18T11:04:50Z Uvos 39 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work - | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~70mW || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 7f1bdbf0daa8f56af2136f3d838e4842fdcc496e 876 875 2020-12-18T11:05:08Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~70mW || |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 02a2a38cdcc7af27dbc8857bd777670f4a3e9b1b 878 876 2020-12-18T11:07:48Z Uvos 39 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~70mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] e066667f9293d1bec8c4334866015cdf36a2a2de 894 878 2020-12-29T22:35:59Z Uvos 39 /* Installation */ wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~70mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] a012fab020917193f0f5f52e409e467c8a050184 Development/Building Packages 0 80 849 817 2020-11-02T10:40:04Z Parazyd 1 /* Maemo Leste Extras */ Note dh_maemo_icon wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/beowulf Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste beowulf main contrib non-free deb https://maedevu.maemo.org/extras beowulf main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/beowulf - main branch for Devuan Beowulf target # maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. == Consideration for HAM == For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the <code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through <code>.desktop</code> files, while the former is done in <code>debian/control</code>. == Adding an icon to the package in HAM == In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''. Next, have your Build-Depends contain '''maemo-system-services'''. maemo-system-services will pull in the debhelper plugin. Following this, in your '''debian/control''', under your '''Package''', add the following entry: <pre> XB-Maemo-Icon-26: ${maemo:icon26} </pre> And finally, in '''debian/rules''', assuming you're using debhelper, add this: <pre> override_dh_gencontrol: dh_maemo_icon dh_gencontrol </pre> 27508f2d37adf04623d553036c20135a45428a03 850 849 2020-11-02T11:54:07Z Parazyd 1 /* Maemo Leste Extras */ wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/beowulf Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste beowulf main contrib non-free deb https://maedevu.maemo.org/extras beowulf main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/beowulf - main branch for Devuan Beowulf target # maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. == Consideration for HAM == For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the <code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through <code>.desktop</code> files, while the former is done in <code>debian/control</code>. == Adding an icon to the package in HAM == In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''. Next, have your Build-Depends contain '''maemo-system-services'''. maemo-system-services will pull in the debhelper plugin. Following this, in your '''debian/control''', under your '''Package''', add the following entry: <pre> XB-Maemo-Icon-26: ${maemo:icon26} </pre> And finally, in '''debian/rules''', assuming you're using debhelper, add this: <pre> override_dh_gencontrol: dh_maemo_icon dh_gencontrol </pre> Finally, if using quilt, add the icon in '''debian/source/include-binaries''' <pre>$ echo debian/maemo-icon.png >> debian/source/include-binaries</pre> Further reading: https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections 12e0d13b5ac6760cc7d07753bb4b0c3e8eb0c85b 851 850 2020-11-02T11:55:41Z Parazyd 1 /* Adding an icon to the package in HAM */ wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/beowulf Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste beowulf main contrib non-free deb https://maedevu.maemo.org/extras beowulf main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/beowulf - main branch for Devuan Beowulf target # maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. == Consideration for HAM == For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the <code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through <code>.desktop</code> files, while the former is done in <code>debian/control</code>. == Adding an icon to the package in HAM == In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''. Next, have your Build-Depends contain '''maemo-system-services-dev'''. maemo-system-services-dev will pull in the debhelper plugin. Following this, in your '''debian/control''', under your '''Package''', add the following entry: <pre> XB-Maemo-Icon-26: ${maemo:icon26} </pre> And finally, in '''debian/rules''', assuming you're using debhelper, add this: <pre> override_dh_gencontrol: dh_maemo_icon dh_gencontrol </pre> Finally, if using quilt, add the icon in '''debian/source/include-binaries''' <pre>$ echo debian/maemo-icon.png >> debian/source/include-binaries</pre> Further reading: https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections 2146c3449d67cf46fa0e615470bc17f76e8d84c7 Status/GPS 0 76 852 795 2020-11-02T15:21:54Z Wizzup 4 Add notes on gpsfake... thanks parazyd! wikitext text/x-wiki == Fremantle Gypsy == is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon". location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD. == Setting up GPSD with gpsfake on a VM == Add backports to /etc/apt/sources.list: <pre> deb https://pkgmaster.devuan.org/merged beowulf-backports main contrib non-free </pre> Then install gpsd using backports: <pre> apt install gpsd -t beowulf-backports apt install gpsd-clients -t beowulf-backports </pre> Stop apparmor (for testing only!): <pre> /etc/init.d/apparmor stop aa-teardown </pre> And then you can run gpsfake using test files from the gpsd repo: <pre> gpsfake -c 1 /home/user/gpsd/test/daemon/nokia-ld-4w.log </pre> Then in another terminal, type: <pre> cgps </pre> And you should see the information from the GPS log be replayed. == Relevant URLs == * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363 * <s>(On combining multiple gps sources such as A-GPS/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html</s> (not actually relevant, A-GPS needs to fed to the GPS driver/subsystem, not merged as info into gpsd) * supl implementation: https://github.com/tajuma/supl * https://talk.maemo.org/showthread.php?t=93910 * https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c == Regarding Droid 4 GPS == <pre> 17:05 < Wizzup> tmlind: wrt gps on the droid, you said there is currently a bug that allows opening /dev/gnss* only once? 17:09 < tmlind> Wizzup: i think that was a bug in gpsd, did not happen last time i tried. if you hit that one, opening secondary clients like gpspipe -R won't output anything 17:09 < Wizzup> ah, so it's not a kernel problem, ok 17:10 < Wizzup> once maemo-input-sounds is done (hopefully tonight) I will work on location stuff in case I can go on vacation and need gps, or until fmg is done with abook and we then look at rtcom 17:10 < Wizzup> in any case, I was wondering what the gps status is, but I think we'll start gpsd on demand, so that's fine 17:11 < Wizzup> from a pm pov, I assume closing the fd will stop gps recv? 17:11 < Wizzup> also, this is on the wiki: 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) 17:13 < tmlind> Wizzup: yeah so if hiking, you probably want to modprobe gnss_motmdm rate_ms=3000 or even higher to allow the soc to sleep inbetween 17:14 < tmlind> Wizzup: the default gpsd options only open device if there's a client and times out automatically 17:14 < Wizzup> interesting. 17:14 < Wizzup> regarding module - well noted 17:14 < Wizzup> I didn't know gpsd auto closed, that's nice. 17:15 < tmlind> i think i measured about 200 - 250 mW with gps enabled screen blanked etc </pre> == Regarding A-GPS in general, but also N900 and Droid 4 specifics == <pre> 17:15 < Wizzup> also ran into this: https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html 17:15 < Entitlement> Wizzup - [ Re: [gpsd-dev] Using multiple location sources to improve accuracy and r ] 17:15 < Wizzup> (regarding agps) 17:15 < tmlind> Wizzup: yeah so don't enable gpsd -n option, that will keep the gps open 17:15 < Wizzup> looks like ESR suggests to write a daemon that sits in the middle and mixes in agps info 17:15 < Wizzup> ok 17:16 < Wizzup> regarding rate_ms, I wonder if it makes more sense to keep it lower until a proper fix is found 17:16 < Wizzup> although I suppose that's only the reporting rate, so it probably doesn't matter 17:16 < tmlind> yeah it defaults to 1s so just leave it out by default 17:16 < tmlind> it will be some generic option eventually and not a module param 17:17 -!- z3ntu_ [z3ntumatri@gateway/shell/matrix.org/x-lnssiqwycssoqteb] has quit [Quit: Idle for 30+ days] 17:18 < tmlind> not sure how much stuff i'll get done over next few months in general, but at some point i'm planning to continue on the droid4-agps tool.. 17:19 < Wizzup> tmlind: what would that do? 17:19 < Wizzup> I figured agps could be done via with https://github.com/tajuma/supl 17:19 < Entitlement> Wizzup - [ GitHub - tajuma/supl ] 17:19 < Wizzup> s/via with/with this/ 17:20 -!- peetah [~peetah@cha92-9-82-236-202-86.fbx.proxad.net] has joined #maemo-leste 17:22 < bencoh> (tested and more or less working on maemo5, btw) 17:22 < Wizzup> bencoh: just now? 17:22 < bencoh> no 17:22 < Wizzup> :) 17:23 < bencoh> I used it to proxify supl requests to google 17:23 < tmlind> Wizzup: hmm maybe not sure. in this case we need to download qcom provided up to date xtra2.bin file for the gnss, not sure if the older formats work at all for the gnss 17:25 < bencoh> tmlind: I'd tend to think you would need to keep gps "always on" before the first fix 17:25 < bencoh> otherwise you will never get enough information from satellites 17:25 < bencoh> (unless you have agps/supl, of course) 17:26 < Wizzup> tmlind: from what I can tell that tool just takes lac/mcc/mns and such (like we can get from ofono or from modem directly) and just calls to a SUPL service? 17:27 < bencoh> Wizzup: google would even return you a rough position with those 17:27 < tmlind> bencoh: yes it does that already automatically and won't start idling until the fix is done 17:27 < bencoh> tmlind: ah, I see 17:28 < tmlind> Wizzup: yeh i figured, not sure if the modem nvram settings for supl are working or not, i somehow have an impression they're only working for some older modems, could be wrong 17:28 < Wizzup> I don't know enough about AGPS clearly, but from what I currently understand, it's just a data connection to a server with some cell data 17:29 < Wizzup> so I am not sure what the modem would do specifically 17:29 < Wizzup> I suppose there are probably many "assisted" methods 17:29 < bencoh> Wizzup: you're supposed to receive orbital data / almanac 17:30 < Wizzup> ah 17:30 < bencoh> and feed it to the gps subsystem 17:30 < tmlind> yeah this xtra2.bin stuff is an almanac in some proprietary format for a week i think 17:30 < Wizzup> oh, right, to actually feed it 17:30 < Wizzup> I get it now. 17:30 < Wizzup> when I was searching for methods to tell gpsd about agps nothing turned out, explains it now 17:31 < Wizzup> s/turned out/turned up/ 17:31 < bencoh> iiuc on n900, the modem itself manages the supl connection; the location daemon only acts as a proxy to provide it a tcp connection 17:31 < Wizzup> ok, yeah, so for the n900 we will have to RE some stuff 17:31 < bencoh> yeah 17:31 < tmlind> bencoh: afaik also mdm6600 nvram has something for supl server, not sure if it works though 17:32 < tmlind> bencoh: if you want to try it, you can tweak the nvram values with tcmdrw on github.com/tmlind 17:32 < bencoh> tmlind: meaning implementing/RE-ing such a proxy would make sense for both platforms 17:33 < tmlind> bencoh: hmm proxy running where? on the device? 17:33 < bencoh> on n900/maemo5, yeah 17:33 < bencoh> iirc it is location-proxy (forked on demand I think) 17:33 < tmlind> well i think the modem uses the supl server directly probably based on some requirements from the ministry of silly walks 17:34 < Wizzup> bencoh: there is location-proxy and location-daemon btw 17:34 < bencoh> it does; the "proxy" only provides the modem with a mean to open a tcp socket and read/write to it 17:34 < bencoh> Wizzup: indeed 17:34 < Wizzup> if you have more info please share :) 17:34 < Wizzup> I can RE some stuff, but want to RE the right things only 17:35 < bencoh> I haven't toyed with those for quite some time, but lemme see 17:35 < tmlind> well the thing to try with droid4 mdm6600 would be to configure supl server in nvram, start modem data connection, then gps and see how fast it gets a fix 17:38 < tmlind> i'd try clearing openpst NV_AAGPS_XTRA_ENABLED_I value to try to disable xtra2.bin use, then try to configure whatever nvram values there might be for a supl server, sorry no idea what those entries might be but i see the dumps contain some url in hex format 17:40 < bencoh> Wizzup: see /usr/lib/liblas.so.0.0.0 17:41 < bencoh> especially the las_socket_* 17:41 < bencoh> location-proxy refers to those 17:42 < Wizzup> hm 32K 17:42 < Wizzup> this is likely all n900 specific though right? 17:42 < bencoh> Wizzup: http://pastebin.notk.org/pastebin.php?show=f7f7b371d 17:42 < Entitlement> bencoh - [ pastebin private pastebin - collaborative debugging tool ] 17:42 < bencoh> most likely n900-specific yeah 17:42 < tmlind> hmm so a quick search for the NV_AAGPS_XTRA_ENABLED_I points to some earlier pastebin page at https://pastebin.com/dyfsUcHc, maybe try configuring those and disable xtra stuff? 17:42 < Entitlement> tmlind - [ QPST 378 NV Items that are in i535 but NOT in i535 dev ed - Pastebin.com ] 17:43 < bencoh> tmlind: I don't think supl server address would go into nvram 17:43 < Wizzup> bencoh: ah, so you're suggesting we make some generic "how to write supl data to a modem" lib? 17:43 < bencoh> tmlind: well, unless it has a mean to actually ask for a specific supl server from the AP processor 17:43 < tmlind> bencoh: i'm pretty sure the uri goes to nvram, see NV_CGPS_UMTS_PDE_SERVER_ADDR_URL_I in the link above 17:43 < bencoh> oh 17:44 < bencoh> well, on n900/maemo5, the host gets to decide on that 17:44 < tmlind> ok 17:45 < bencoh> Wizzup: I guess we would want a "generic" glue lib with support for various (two?) platforms 17:45 < tmlind> bencoh: there seems to be a bunch PDE related nvram entries, see libopenpst dm_nv.h file 17:46 < bencoh> right 17:47 < bencoh> Actually I wonder if the supl connection would need to go through the host cpu at all on the mdm6600 17:47 < tmlind> bencoh: no afaik it can't 17:48 < bencoh> it might try and use the gprs/umts data channels 17:48 < tmlind> i think it has to 17:48 < bencoh> without even bothering with the host 17:48 < tmlind> right 17:48 < bencoh> it's a completely different design then 17:48 < bencoh> meaning it should work automagically once we setup pde server properly 17:49 < tmlind> yeah it should hopefully unless it's working only in the xtra2.bin mode 17:49 < bencoh> and that it'll stop working forever once supl servers break support for it 17:49 < tmlind> bencoh: so i did also a tool for the xtra2.bin stuff but it's not complete, also on my github page droid4-agps or something like that 17:49 < bencoh> (unlike n900, where we managed to somehow get some kind of support using supl-proxy from tajuma) 17:50 < tmlind> bencoh: at least the supl stuff is a standard format, let's hope it works :) 17:51 < bencoh> it's "standard" until google decides some input fields become mandatory 17:51 < bencoh> but yeah 17:51 < tmlind> i think there are other supl servers available too, right? 17:51 < Wizzup> bencoh: there were other supl servers I think 17:51 < bencoh> (I think that's the reason supl.google.com doesn't work on n900 without any proxy) 17:51 < Wizzup> bencoh: oh? 17:51 < bencoh> well, it depends on your phone service provider 17:52 < bencoh> vodaphone has (had?) one for their customers, but it's not available from outside their network 17:52 < bencoh> nokia died 17:52 < bencoh> I think sony had one, but ... 17:53 < bencoh> we could also run one, but we'd need to write a fair bit of code for that 17:53 < Wizzup> didn't see any code for it so far 17:53 < Wizzup> (googling around) 17:54 < Wizzup> as in, for a supl server 17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8 17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves version ] 17:55 < bencoh> that's for the rrlp part 17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to wrap the RRLP payload in SUPL packets 17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort of what ntpd does 17:57 < Wizzup> it would be nice to have a supl server one can just run, though 17:57 < tmlind> yup 17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900 17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;) 17:57 < Wizzup> (for leste, to at least get the frameworks in place) 17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix 17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8 17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves version ] 17:55 < bencoh> that's for the rrlp part 17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to wrap the RRLP payload in SUPL packets 17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort of what ntpd does 17:57 < Wizzup> it would be nice to have a supl server one can just run, though 17:57 < tmlind> yup 17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900 17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;) 17:57 < Wizzup> (for leste, to at least get the frameworks in place) 17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix 17:58 < Wizzup> I should probably do it on fremantle too, didn't look at the proxying 17:58 < bencoh> (I think it stopped working at some point, but I haven't investigated it. It might be a cert issue) 17:58 < tmlind> well i meant running a proxying supl server on maemo.org picking data from various sources so devices would just point to the maemo supl server 17:58 < bencoh> Wizzup: Sicelo eventually wrote a howto https://wiki.maemo.org/N900_GPS_Proxy 17:58 < Entitlement> bencoh - [ N900 GPS Proxy - maemo.org wiki ] 17:59 < bencoh> tmlind: *nod* 17:59 < Wizzup> check 17:59 < Wizzup> tmlind: ah, right 17:59 < Wizzup> that's definitely a good stopgap at least 18:00 < bencoh> We almost have the code for that 18:00 < tmlind> yeah then adding supl data from some open source data feed could be just added 18:00 < bencoh> we just need to add multi-client support to supl-proxy 18:00 < tmlind> cool 18:01 < bencoh> err, except that supl-proxy will actually fetch data for every request 18:01 < tmlind> heh that probably creates a google maps traffic jam to where that server is hosted :) 18:01 < bencoh> :)) 18:02 < tmlind> not sure if there are some legal aspects to consider there, not familiar with the supl stuff really 18:02 < bencoh> you need to supply a valid cell (mnc/lac/whatever) coordinate, and supl response is customized accordingly 18:02 < bencoh> afaict 18:02 < tmlind> huh why do you need mnc/lac? 18:03 < tmlind> to limit the data size? 18:03 < bencoh> I'm pretty certain you wouldn't need it in theory to get a full ephemeric/almanac dump 18:03 < tmlind> bbl 18:03 < bencoh> but iirc it's mandatory for supl.google.com 18:04 < bencoh> (I can see a pretty good reason for that, actually ... google loves knowing where you are) 18:06 < Wizzup> yeah 18:06 < Wizzup> from 3) A-GPS here , there seem to be only a few https://www.reddit.com/r/privacy/comments/cldrym/how_to_degoogle_lineageos_in_2019/ 18:06 < Entitlement> Wizzup - [ How to deGoogle LineageOS in 2019 : privacy ] 18:06 < Wizzup> (providers that run a supl server) 18:12 < bencoh> wow, supl.sonyericsson.com actually works as well 18:13 < bencoh> and vodafone too. funny, last time I tried I couldn't use it 18:17 < tmlind> cool, anyways multiple source for the proxying supl server would be best, sort of like with nptd 18:17 * bencoh nods </pre> 84d65bd13a999cbd2e237b93b8ad26ea152a895b File:Cant have 2 much leste.jpg 6 113 853 2020-11-19T13:04:17Z Clort 42 Droid4's running Maemo-Leste wikitext text/x-wiki Droid4's running Maemo-Leste 5aa6d5ca73096d9d5b1f63925a1715ed8421629f File:Leste-neverball.jpg 6 114 854 2020-11-19T13:07:52Z Clort 42 Droid 4 running Neverball with gl4es shim. wikitext text/x-wiki Droid 4 running Neverball with gl4es shim. b10c36612d284491a2ff86377c9f993ea0813925 File:Statsfun.jpg 6 115 855 2020-11-19T13:09:54Z Clort 42 Droid 4 Maemo Leste running stats script wikitext text/x-wiki Droid 4 Maemo Leste running stats script 6e21fd4a4794fe00095ec84ce8950c9e412b66c2 File:Leste-glmatrix.png 6 116 856 2020-11-19T13:11:38Z Clort 42 Droid 4 and Leste running JWZ's glmatrix screensaver (without hildon compositing) wikitext text/x-wiki Droid 4 and Leste running JWZ's glmatrix screensaver (without hildon compositing) da39b5b85045f07138d3a059f0a27441fc86f9fd Motorola Droid 4 0 50 857 842 2020-11-19T13:12:02Z Clort 42 /* Gallery */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png </gallery> [[Category:Device]] 43de9725e3895c819b2f4bb8c04baded809eb2d5 859 857 2020-11-19T14:21:19Z Clort 42 /* Gallery */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg </gallery> [[Category:Device]] 5e8ef06b4a447839e599de07186e72c3734dbfce 861 859 2020-11-19T17:27:10Z Clort 42 /* Gallery */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg </gallery> [[Category:Device]] d16cdded645e4b7d8b47c97fae6177dfec9e63cf 863 861 2020-11-21T14:29:10Z Clort 42 /* Gallery */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] e10ddf7f3bcb1c0467c405e72f07be61854052d7 877 863 2020-12-18T11:07:16Z Uvos 39 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~120mW || |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] ef43809a19a4f9d3c0589837d60da8b333160a99 879 877 2020-12-18T11:07:54Z Uvos 39 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || WIP || needs mce work |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] f8db0b36d2744da377d01863fd2972716b8b8c3d 880 879 2020-12-18T11:08:25Z Uvos 39 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] 7ba1674dada78088e1cfff3a1f491063a19e8f10 881 880 2020-12-18T11:10:19Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] d635248ff74e10f42f791e0d376f62b775e99b61 882 881 2020-12-22T01:16:48Z Clort 42 /* Stuff to try */ additions by Clort. wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] c044826e62bc8820be874c3dcdeca8d3ef861e6f File:Droid4-leste-utox2.jpg 6 117 858 2020-11-19T14:20:51Z Clort 42 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Droid4-leste-pcsx.jpg 6 118 860 2020-11-19T17:26:31Z Clort 42 PCSX-ReArmed runs at under 40% cpu use of one core of Omap4 wikitext text/x-wiki PCSX-ReArmed runs at under 40% cpu use of one core of Omap4 4e64881a258ed9357d7a5dbf0c3639e397b6c3fc File:Droid4-leste-surf master.jpg 6 119 862 2020-11-21T14:28:40Z Clort 42 suckless 'surf' browser - not from debian repo - doesn't have url bar. default.css in ~/.surf/styles/default.css is: pre,textarea,body,input,td,tr,p { background-color: black !important; background-image: none !important; color: #e0e0e0 !important... wikitext text/x-wiki suckless 'surf' browser - not from debian repo - doesn't have url bar. default.css in ~/.surf/styles/default.css is: pre,textarea,body,input,td,tr,p { background-color: black !important; background-image: none !important; color: #e0e0e0 !important; } div { background-color: #101010 !important; background-image: none !important; color: #e0e0e0 !important; } h1,h2,h3,h4 { background-color: black !important; color: #e02020 !important; } a { color: #5050f0 !important; } a:link {color: #20D0FF !important} a:visited {color: #DF46C0 !important} a:hover {color: #FFCC00 !important} a:active {color: #FF00CC !important} #bottom-result-container #spon_links { display: none !important; } #bottom-result-container #sponsored_csa1 { display: none !important; } #bottom-result-container #sponsored_csa2 { display: none !important; } 652da4e70b6175823beb1758403ec35bcf65f5c4 User:Sicelo/Snippets 2 102 864 731 2020-11-26T23:33:33Z Sicelo 5 n900 bluetooth wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect Force N900 to stop charging while connected to power echo off > /sys/class/power_supply/bq24150a-0/mode N900 bluetooth 00:26 < sicelo> sre: hi. (this isn't too important compared to the task at hand, but) iirc getting N900 bluetooth working with mainline needed some serdev work. do you know what still needs to be done? 00:28 < sre> enabling CONFIG_BT_HCIUART_NOKIA should give you a somewhat working bluetooth device. IIRC there were some issues that need to be debugged. Application wishlist from Wizzup <pre> Maybe fun to port: desktop: battery-eye (in vm al) catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category) live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/ datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/ personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/ humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/ DONE personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/ custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/ advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/ app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/ qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/ DONE http://maemo.org/downloads/product/Maemo5/miku-theme/ education: dorian http://maemo.org/downloads/product/Maemo5/dorian/ evopedia http://maemo.org/downloads/product/Maemo5/evopedia/ e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/ gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak games smw - http://maemo.org/downloads/product/Maemo5/smw/ warmux - http://maemo.org/downloads/product/Maemo5/wormux/ battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/ drnoksnes (!!!) freecell4maemo ? prboom bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/ puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/ rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/ uae4all goed laten werken neverball - http://maemo.org/downloads/product/Maemo5/neverball/ graphics mypaint (?) raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/ multimedia Boel coole/nuttige music players qspot http://maemo.org/downloads/product/Maemo5/qspot/ recorder http://maemo.org/downloads/product/Maemo5/recorder/ qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/ maetronome http://maemo.org/downloads/product/Maemo5/maetronome/ location and navigation modrana marble? http://maemo.org/downloads/product/Maemo5/marble/ marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/ maep for sure http://maemo.org/downloads/product/Maemo5/maep/ gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/ OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/ interessant http://maemo.org/downloads/product/Maemo5/snuggle/ internet and networking google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/ meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/ twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/ zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/ witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/ vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/ wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/ qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/ xchat irc http://maemo.org/downloads/product/Maemo5/xchat/ office xournal http://maemo.org/downloads/product/Maemo5/xournal/ quicknote http://maemo.org/downloads/product/Maemo5/quicknote/ mebook http://maemo.org/downloads/product/Maemo5/mebook/ portabase? http://maemo.org/downloads/product/Maemo5/portabase/ other -- science orrery -- http://maemo.org/downloads/product/Maemo5/orrery/ accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/ system (lots of themes) theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/ matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/ borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/ okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/ cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/ maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/ extra translations / languages </pre> Other stuff to do/test: <pre> - N900 flashlight - WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/ - WiFi monitor mode (N900 & Droid 4) - WiFi hotspot (Droid 4) </pre> 10e0b67d3f785d1a2e224b8273c3d9ec7b4eab63 Nokia N900 0 48 865 814 2020-11-27T17:10:26Z Wizzup 4 /* Power Management */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works fast(!) |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 1df95c6674b3f5b3577b5574362799e0c9a32669 866 865 2020-11-27T21:10:38Z Sicelo 5 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to use/install Fremantle, or want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 6d1ac3cbfbddf95ddc0580a8e1a55a9574db4023 867 866 2020-11-27T21:19:49Z Sicelo 5 /* U-Boot setup */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 0453337af1969671b7035ee5299258f6215bf2db 868 867 2020-11-27T21:21:57Z Sicelo 5 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] a4fd57ebaeb81456d48d7e59b622683a647a9017 869 868 2020-11-27T21:22:11Z Sicelo 5 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 4f07fa341b4e0cb7f9c49f57636086b3e92ac6bb 870 869 2020-11-27T21:23:22Z Sicelo 5 /* Power Management */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] bdd078b628a2dc7d6440615dfe28d02368b9f8d5 Tricks 0 120 871 2020-12-07T11:29:20Z Wizzup 4 Created page with "List of tricks:" wikitext text/x-wiki List of tricks: 0b621e04d5afdf639fcc87625520dae8462bceb1 884 871 2020-12-24T05:00:59Z Clort 42 Added Macchanger Trick, Moved barrier trick from droid4 hints. wikitext text/x-wiki List of tricks: ==== Randomize MAC Address ==== Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern. The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces. <pre>apt install -y macchanger </pre> During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC. <pre> macchanger wlan0 -e -a ifconfig wlan0 up </pre> ==== Keyboard / Mouse sharing with PC ==== To use a leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this. <pre> https://github.com/debauchee/barrier Barrier software-KVM switch </pre> A hildonized maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling. 596d693123a3c23c2790eb532922544ff6f741db Development 0 61 872 808 2020-12-10T22:22:00Z Sicelo 5 specify arch explicitly wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in eba8a9e2901135113dca21820e111f6d0758f3db 887 872 2020-12-25T09:45:04Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 0a847b8aa6b89757c8231ac22198b3a642413510 Development/Daemons 0 121 885 2020-12-25T09:44:19Z Wizzup 4 Created page with "This page documents the various daemons that run on a typical Maemo Leste system. Maemo Specific, headless: * [[Development/Daemons/dsme|dsme]] * Development/Daemons/mce|m..." wikitext text/x-wiki This page documents the various daemons that run on a typical Maemo Leste system. Maemo Specific, headless: * [[Development/Daemons/dsme|dsme]] * [[Development/Daemons/mce|mce]] * [[Development/Daemons/ke-recv|ke-recv]] * [[Development/Daemons/icd2|icd2]] * [[Development/Daemons/clockd|clockd]] * [[Development/Daemons/maemo-launcher|maemo-launcher]] Maemo Specific, maybe not headless: * [[Development/Daemons/alarmd|alarmd]] * [[Development/Daemons/profiled|profiled]] * [[Development/Daemons/systemui|systemui]] * [[Development/Daemons/maemo-xinput-sounds|maemo-xinput-sounds]] * [[Development/Daemons/hildon-input-method|hildon-input-method]] Devuan/Debian: * iio-sensor-proxy * ofonod * upowerd * pulsaudio * wpa_supplicant 1359211c3e3e6a2d7d3c74bb00cf1ce8cd432176 886 885 2020-12-25T09:44:41Z Wizzup 4 wikitext text/x-wiki This page documents the various daemons that run on a typical Maemo Leste system. (Work in progress) Maemo Specific, headless: * [[Development/Daemons/dsme|dsme]] * [[Development/Daemons/mce|mce]] * [[Development/Daemons/ke-recv|ke-recv]] * [[Development/Daemons/icd2|icd2]] * [[Development/Daemons/clockd|clockd]] * [[Development/Daemons/maemo-launcher|maemo-launcher]] Maemo Specific, maybe not headless: * [[Development/Daemons/alarmd|alarmd]] * [[Development/Daemons/profiled|profiled]] * [[Development/Daemons/systemui|systemui]] * [[Development/Daemons/maemo-xinput-sounds|maemo-xinput-sounds]] * [[Development/Daemons/hildon-input-method|hildon-input-method]] Devuan/Debian: * iio-sensor-proxy * ofonod * upowerd * pulsaudio * wpa_supplicant 2917eb3db49e7bf39b43784e4de097c13f42e8f5 Calendar 0 109 888 835 2020-12-27T11:02:12Z Wizzup 4 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == Install: <pre> apt install syncevolution </pre> Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == Syncevolution-frontend == The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation. Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 463ebaba6bc53acf33d34e44cbfa138a67a98d70 Qt 0 122 890 2020-12-27T20:13:54Z Wizzup 4 Created page with "(This page is work in progress. Very much so.) Maemo Leste ships with a Qt5 port as of mid 2020. This page documents how some of that works, and some tricks to modify the se..." wikitext text/x-wiki (This page is work in progress. Very much so.) Maemo Leste ships with a Qt5 port as of mid 2020. This page documents how some of that works, and some tricks to modify the setup. ==== Using a non-maemo theme ==== Unset or override the "QT_STYLE_OVERRIDE" and "QT_QPA_PLATFORM" environments. 9be8e1b941aaf4d2f44bda5de4d5b0c1b31d8716 891 890 2020-12-27T20:14:04Z Wizzup 4 wikitext text/x-wiki (This page is work in progress. Very much so.) Maemo Leste ships with a Qt5 port as of mid 2020. This page documents how some of that works, and some tricks to modify the setup. ==== Using a non-maemo theme ==== Unset or override the "QT_STYLE_OVERRIDE" and "QT_QPA_PLATFORM" environment variables. 8a1d84f5da37ace5b3950b46b1aeb027ecd786c9 Wishlist 0 89 893 786 2020-12-29T21:21:41Z Rasmarc 43 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || No || simple brightness applet with swapped button functions || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) 5dd5507f2ed4e388ecbbd2753cc342a337880866 895 893 2020-12-29T23:40:24Z Rasmarc 43 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || No || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) 6445b6725956c0f473c1a2ecf2cfbef8ea7c42ad Image Builder 0 100 896 807 2020-12-30T11:36:26Z Parazyd 1 Update docs. wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == '''[https://github.com/maemo-leste/image-builder Github]''' # Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre> # If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream <pre> # wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres # ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/beowulf </pre> # In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_arm_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * raspi4 * rock64 * pinephone-dontbeevil * pinephone * pinetab * sunxi * turbox-twister cb8f0c005e0c5df1b79ce9e17c3fb49c5bf328ac 897 896 2020-12-30T11:37:02Z Parazyd 1 /* How to build your own images */ wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == '''[https://github.com/maemo-leste/image-builder Github]''' 1.) Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre> 1.1) If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream <pre> # wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres # ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/beowulf </pre> 2.) In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_arm_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * raspi4 * rock64 * pinephone-dontbeevil * pinephone * pinetab * sunxi * turbox-twister 5ce63b75a160a8dbd6bffbbb2d38f251ccc40cf5 Motorola Droid 4 0 50 898 882 2020-12-31T10:10:04Z Parazyd 1 Remove audio setup; now works ootb with pulse. wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] 00205480094fb2141853d7a69f9519b986abe1c2 911 898 2021-01-09T12:59:53Z Wizzup 4 /* Installation */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] 21f97d4ec3bb50dbac5ec902cc23e5157d0fc324 Main Page 0 1 899 812 2020-12-31T11:29:15Z BuZz 32 /* Links */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 955641312fccf3be15a1033fe722cf3ec74fd12b Talk:Development 1 123 900 2020-12-31T11:39:29Z Inetdragon 44 Created page with "The instruction for cross building is for debian stretch and devuan ascii. Should it be updated to use "buster" and "beowulf"" wikitext text/x-wiki The instruction for cross building is for debian stretch and devuan ascii. Should it be updated to use "buster" and "beowulf" 238a814eaa023ba2fcd97c7554189e0fda86b60a Development 0 61 901 887 2020-12-31T11:42:32Z Inetdragon 44 For cross-building instruction, add --no-check-certificate to the wget command to fetch testing-key fetch. Otherwise, it complains wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 21dc2b97d3e4292a62b19d06fdfc9b7c19514b3b 902 901 2020-12-31T17:33:49Z Inetdragon 44 Add systemd-container to the container setup package. systemd-nspawn needs it wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap systemd-container && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 50447df2059632813a6e54d6979294b7ab1efb78 Qt 0 122 903 891 2021-01-05T00:02:20Z Dreamer 31 add some use-flags for style and xcb wikitext text/x-wiki (This page is work in progress. Very much so.) Maemo Leste ships with a Qt5 port as of mid 2020. This page documents how some of that works, and some tricks to modify the setup. ==== Using a non-maemo theme ==== Unset or override the "QT_STYLE_OVERRIDE" and "QT_QPA_PLATFORM" environment variables. You can also add the flag "-style=fusion" to set the style. ==== Menus are not working ==== Add the flag "-platform xcb". This enforces the libxcb bindings https://xcb.freedesktop.org/ and may help. 43561f7bbd2930e3f6b49d8ee2152513c8484247 Nokia N9 0 55 904 156 2021-01-05T10:17:33Z Parazyd 1 Add device info wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Nokia |codename=Lankku |dimensions=116.5x61.2x12.1mm |release_date=September 2011 |soc=TI OMAP3630 |dram=1024M |power= |lcd=480x854 3.9" AMOLED |video=PowerVR SGX530 |audio= |network= |storage=16/64GB flash |usb= |camera= |sensors= |other= }} [[Category:Device]] foo 878f471fa656b71c4dbcd87faf30925044357faa 905 904 2021-01-05T10:23:44Z Parazyd 1 Add WIP installation wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Nokia |codename=Lankku |dimensions=116.5x61.2x12.1mm |release_date=September 2011 |soc=TI OMAP3630 |dram=1024M |power= |lcd=480x854 3.9" AMOLED |video=PowerVR SGX530 |audio= |network= |storage=16/64GB flash |usb= |camera= |sensors= |other= }} [[Category:Device]] == Status == TODO == Installation == In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''. Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package. After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode''' and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app. b0d69e2f839f9dda7498e1f7f919a3181a7ae5ef 906 905 2021-01-05T13:16:09Z Parazyd 1 Add ubiboot instructions wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Nokia |codename=Lankku |dimensions=116.5x61.2x12.1mm |release_date=September 2011 |soc=TI OMAP3630 |dram=1024M |power= |lcd=480x854 3.9" AMOLED |video=PowerVR SGX530 |audio= |network= |storage=16/64GB flash |usb= |camera= |sensors= |other= }} [[Category:Device]] == Status == TODO == Installation == '''WORK IN PROGRESS''' In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''. Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package. After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode''' and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app. For root access, in the terminal you can type: $ devel-su Password: rootme For ssh access, set a password for the user: $ devel-su # passwd user Then you can ssh: $ ssh user@RM696 Remove openmode warning: $ devel-su # disclaimer-cal remove View-openmode Download ubiboot (on device): $ mkdir -p /home/user/MyDocs/boot && cd /home/user/MyDocs/boot $ wget http://maedevu.maemo.org/images/n9/ubiboot-02_0.3.5_301013.tar $ tar xf ubiboot-02_0.3.5_301013.tar $ rm ubiboot-02_0.3.5_301013.tar $ md5sum * e76ed3f0cf0cc172f668b970ae778a71 md5sums.txt d1e1a6eb6d877f53a01e946a5ccf5017 ubiboot-02.menus.cpio adfbdc7d6cca6638b2dd079105d8daeb ubiboot.conf d6d7081cffe2684944f141bc9a71fea9 zImage_2.6.32.54-ubiboot-02_301013 $ devel-su # cd /boot # wget http://maedevu.maemo.org/images/n9/zImage_2.6.32.54-openmode_l2fix # cd / # wget http://maedevu.maemo.org/images/n9/preinits.tar # md5sum preinits.tar 515a8e1e5506f45afbc139c137d496b7 preinits.tar # tar xf preinits.tar # rm preinits.tar Put your device in Upgrade mode: $ lsusb Bus 001 Device 084: ID 0421:0105 Nokia Mobile Phones Nokia Firmware Upgrade Mode Disable watchdogs: # 0xFFFF -F no-omap-wd,no-ext-wd,no-lifeguard-reset Power off the N9 completely, and run flasher to flash ubiboot kernel, then connect the N9 with USB: # flasher -a firmware.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R If everything was performed correctly, the device should boot in an animated bootmenu if you disconnected the USB cable, or maintenance mode if USB is still connected. 3a87566972e9ae8e4663038413b2c41162c1f670 907 906 2021-01-05T13:22:38Z Parazyd 1 /* Installation */ wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Nokia |codename=Lankku |dimensions=116.5x61.2x12.1mm |release_date=September 2011 |soc=TI OMAP3630 |dram=1024M |power= |lcd=480x854 3.9" AMOLED |video=PowerVR SGX530 |audio= |network= |storage=16/64GB flash |usb= |camera= |sensors= |other= }} [[Category:Device]] == Status == TODO == Installation == '''WORK IN PROGRESS''' In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''. Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package. After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode''' and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app. For root access, in the terminal you can type: $ devel-su Password: rootme For ssh access, set a password for the user: $ devel-su # passwd user Then you can ssh: $ ssh user@RM696 Remove openmode warning: $ devel-su # disclaimer-cal remove View-openmode Download ubiboot (on device): $ mkdir -p /home/user/MyDocs/boot && cd /home/user/MyDocs/boot $ wget http://maedevu.maemo.org/images/n9/ubiboot-02_0.3.5_301013.tar $ tar xf ubiboot-02_0.3.5_301013.tar $ rm ubiboot-02_0.3.5_301013.tar $ md5sum * e76ed3f0cf0cc172f668b970ae778a71 md5sums.txt d1e1a6eb6d877f53a01e946a5ccf5017 ubiboot-02.menus.cpio adfbdc7d6cca6638b2dd079105d8daeb ubiboot.conf d6d7081cffe2684944f141bc9a71fea9 zImage_2.6.32.54-ubiboot-02_301013 $ devel-su # cd /boot # wget http://maedevu.maemo.org/images/n9/zImage_2.6.32.54-openmode_l2fix # cd / # wget http://maedevu.maemo.org/images/n9/preinits.tar # md5sum preinits.tar 515a8e1e5506f45afbc139c137d496b7 preinits.tar # tar xf preinits.tar # rm preinits.tar Put your device in Upgrade mode: $ lsusb Bus 001 Device 084: ID 0421:0105 Nokia Mobile Phones Nokia Firmware Upgrade Mode Disable watchdogs: # 0xFFFF -F no-omap-wd,no-ext-wd,no-lifeguard-reset Power off the N9 completely, and run flasher to flash ubiboot kernel, then connect the N9 with USB: # flasher -a firmware.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R If everything was performed correctly, the device should boot in an animated bootmenu if you disconnected the USB cable, or maintenance mode if USB is still connected. == Partitioning == https://talk.maemo.org/showthread.php?t=91914 05adff06fb964de3a3a2f9863b010f8201598f4e 908 907 2021-01-05T13:25:53Z Parazyd 1 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Nokia |codename=Lankku |dimensions=116.5x61.2x12.1mm |release_date=September 2011 |soc=TI OMAP3630 |dram=1024M |power= |lcd=480x854 3.9" AMOLED |video=PowerVR SGX530 |audio= |network= |storage=16/64GB flash |usb= |camera= |sensors= |other= }} [[Category:Device]] == Status == TODO == Partitioning == https://talk.maemo.org/showthread.php?t=91914 == Installation == '''WORK IN PROGRESS''' In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''. Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package. After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode''' and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app. For root access, in the terminal you can type: $ devel-su Password: rootme For ssh access, set a password for the user: $ devel-su # passwd user Then you can ssh: $ ssh user@RM696 Remove openmode warning: $ devel-su # disclaimer-cal remove View-openmode Download ubiboot (on device): $ mkdir -p /home/user/MyDocs/boot && cd /home/user/MyDocs/boot $ wget http://maedevu.maemo.org/images/n9/ubiboot-02_0.3.5_301013.tar $ tar xf ubiboot-02_0.3.5_301013.tar $ rm ubiboot-02_0.3.5_301013.tar $ md5sum * e76ed3f0cf0cc172f668b970ae778a71 md5sums.txt d1e1a6eb6d877f53a01e946a5ccf5017 ubiboot-02.menus.cpio adfbdc7d6cca6638b2dd079105d8daeb ubiboot.conf d6d7081cffe2684944f141bc9a71fea9 zImage_2.6.32.54-ubiboot-02_301013 $ devel-su # cd /boot # wget http://maedevu.maemo.org/images/n9/zImage_2.6.32.54-openmode_l2fix # cd / # wget http://maedevu.maemo.org/images/n9/preinits.tar # md5sum preinits.tar 515a8e1e5506f45afbc139c137d496b7 preinits.tar # tar xf preinits.tar # rm preinits.tar Put your device in Upgrade mode: $ lsusb Bus 001 Device 084: ID 0421:0105 Nokia Mobile Phones Nokia Firmware Upgrade Mode Disable watchdogs: # 0xFFFF -F no-omap-wd,no-ext-wd,no-lifeguard-reset Power off the N9 completely, and run flasher to flash ubiboot kernel, then connect the N9 with USB: # flasher -a firmware.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R If everything was performed correctly, the device should boot in an animated bootmenu if you disconnected the USB cable, or maintenance mode if USB is still connected. 35f705a92bd1e406aff2f70279e96800b29e32bf 909 908 2021-01-05T13:34:07Z Parazyd 1 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Nokia |codename=Lankku |dimensions=116.5x61.2x12.1mm |release_date=September 2011 |soc=TI OMAP3630 |dram=1024M |power= |lcd=480x854 3.9" AMOLED |video=PowerVR SGX530 |audio= |network= |storage=16/64GB flash |usb= |camera= |sensors= |other= }} [[Category:Device]] == Status == TODO == Mainline Linux == 14:49 <sre> tmlind: parazyd: not sure if you found my old n9/50 display branch already (I did not read full history since you pinged me). I think only this patch is needed to get display output on n9/50: https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-n900.git/commit/?h=n950-display-tony&id=d4cbc226a30b29bf2583ffff97b052c9ec68c8a3 14:52 <parazyd> I have these: https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches 14:52 <parazyd> But it's 4.16 14:59 <sre> parazyd: ok, 4.16 is... old. Basically the features for the first four patches reached mainline. Patches 5-7 add automatic rotation and have not yet been integrated, but screen works without them (one just needs to rotate manually). Also they are easy to rebase and I don't see any problems upstreaming them after Tomi's cleanup series has landed. 14:59 <sre> The 'rotation' property is already documented in DT bindings :) Finally patch 8 is required on OMAP3 devices and has not yet been upstreamed either. Without that display does not work at all on n9/50. 15:00 <sre> Also on mainline the DSI command mode panel driver works like the other DRM panel drivers, so the panel timing is described in the driver instead of DT. 15:00 <sre> so support for "nokia,pyrenees" needs to be added in the driver instead of describing the timings in DT == Partitioning == https://talk.maemo.org/showthread.php?t=91914 == Installation == '''WORK IN PROGRESS''' In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''. Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package. After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode''' and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app. For root access, in the terminal you can type: $ devel-su Password: rootme For ssh access, set a password for the user: $ devel-su # passwd user Then you can ssh: $ ssh user@RM696 Remove openmode warning: $ devel-su # disclaimer-cal remove View-openmode Download ubiboot (on device): $ mkdir -p /home/user/MyDocs/boot && cd /home/user/MyDocs/boot $ wget http://maedevu.maemo.org/images/n9/ubiboot-02_0.3.5_301013.tar $ tar xf ubiboot-02_0.3.5_301013.tar $ rm ubiboot-02_0.3.5_301013.tar $ md5sum * e76ed3f0cf0cc172f668b970ae778a71 md5sums.txt d1e1a6eb6d877f53a01e946a5ccf5017 ubiboot-02.menus.cpio adfbdc7d6cca6638b2dd079105d8daeb ubiboot.conf d6d7081cffe2684944f141bc9a71fea9 zImage_2.6.32.54-ubiboot-02_301013 $ devel-su # cd /boot # wget http://maedevu.maemo.org/images/n9/zImage_2.6.32.54-openmode_l2fix # cd / # wget http://maedevu.maemo.org/images/n9/preinits.tar # md5sum preinits.tar 515a8e1e5506f45afbc139c137d496b7 preinits.tar # tar xf preinits.tar # rm preinits.tar Put your device in Upgrade mode: $ lsusb Bus 001 Device 084: ID 0421:0105 Nokia Mobile Phones Nokia Firmware Upgrade Mode Disable watchdogs: # 0xFFFF -F no-omap-wd,no-ext-wd,no-lifeguard-reset Power off the N9 completely, and run flasher to flash ubiboot kernel, then connect the N9 with USB: # flasher -a firmware.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R If everything was performed correctly, the device should boot in an animated bootmenu if you disconnected the USB cable, or maintenance mode if USB is still connected. 0bfa97d38b743fd64cd32809b343c2042de08781 Virtual Machine 0 60 910 761 2021-01-06T10:26:59Z Kgoetz 45 expand on virt manager wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like: qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add: -usb -device usb-tablet to the command line. Alternatively if that dose not work you can instead add: -usb -device usb-mouse -machine vmport=off If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image. The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly. * Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted. * In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 6f72a7909976db08c32e98d450a106d3b33518f3 Tweaking 0 104 912 719 2021-01-11T16:30:48Z Wizzup 4 Clock now works wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner. ==== Battery icon ==== You can change the animation of the charging icon to show the current charge capacity: <pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> fc0753bd1a2546c26a740656ef582d1702590665 Wishlist 0 89 913 895 2021-01-11T21:33:49Z Derby 3 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || No || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. db75cda0eb4d9a2ccaf83a45966e95cc154f9c9c 918 913 2021-01-15T00:48:39Z Wizzup 4 brightness applet is done https://maedevu.maemo.org/pkgweb/search?q=simple-brightness-applet wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. c140ba57c71a702d010c32bbe441a51548f72150 919 918 2021-01-15T00:48:58Z Wizzup 4 Qalendar is done https://maedevu.maemo.org/pkgweb/search?q=qalendar wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. 622184e20cace50b7189348687f0f3c3eacbbc12 920 919 2021-01-15T00:49:25Z Wizzup 4 Alarm clock UI is done https://maedevu.maemo.org/pkgweb/search?q=clock-ui wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. 569f6a00cca98efde27081bc67a6d0d2d3caa450 921 920 2021-01-15T00:52:20Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || No || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. b6d7a45016cb5720cb24ffa814633cea396fa120 922 921 2021-01-15T00:52:52Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. 71e02ed48e3501db77325849975d5db4db166116 Development/Tasks 0 92 914 816 2021-01-15T00:43:57Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || wIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} aa6d56ae14fe5e2e3469d58661e31a33b0476f95 915 914 2021-01-15T00:44:20Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || WIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- |} 7479737e076bcd92c186797603121bd7c6ac7a67 916 915 2021-01-15T00:45:29Z Wizzup 4 Moved DONE to the bottom wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || WIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- |} ec48981f9bcc026083d1fa81edd5efeb20dbb914 917 916 2021-01-15T00:45:49Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || WIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || || |- |} c81067e924133da796d2fac9edd17ad010558860 Status/Audio 0 108 923 803 2021-01-16T09:45:06Z Wizzup 4 /* Current status */ wikitext text/x-wiki == Current status == * We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc. == Development notes == For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc. Unsorted (useful) links: * https://www.systutorials.com/docs/linux/man/1-alsaucm/ * https://github.com/alsa-project/alsa-ucm-conf * https://wiki.postmarketos.org/wiki/Alsa_UCM * https://wiki.archlinux.org/index.php/PulseAudio/Examples * https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio * https://wiki.merproject.org/wiki/Nemo/Audio * (Fremantle/N900-specific) http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA * (Fremantle/N900-specific) https://blog.linuxplumbersconf.org/2009/slides/Jyri-Sarha-audio_miniconf_slides.pdf b30ff9417fff0d1c04dbb5010f2f9da0f9858baa Getting Started 0 105 924 733 2021-01-17T12:00:28Z Parazyd 1 wikitext text/x-wiki = (SSH) Login = User credentials are: user:user Root credentials are: root:toor You should prefer logging in as user and then escalating to root with sudo as necessary. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = Tweaking = See [[Tweaking]] 3c2d577d4c0f1c40560e6b6c1f32b0c806b2d5cd 925 924 2021-01-17T12:00:37Z Parazyd 1 /* (SSH) Login */ wikitext text/x-wiki = (SSH) Login = User credentials are: user:user Root credentials are: root:toor You should prefer logging in as user and then escalating to root with sudo as necessary. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = Tweaking = See [[Tweaking]] ac88c4f89bfb33b43c6c8fc39cbd345def97fb99 926 925 2021-01-17T12:00:52Z Parazyd 1 /* (SSH) Login */ wikitext text/x-wiki = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor ''' You should prefer logging in as user and then escalating to root with sudo as necessary. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = Tweaking = See [[Tweaking]] e9fc417ef0826038a4e89a626a7a7e366385efcd 927 926 2021-01-17T12:01:05Z Parazyd 1 /* (SSH) Login */ wikitext text/x-wiki = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = Tweaking = See [[Tweaking]] 510bdaa0b4ea060346fcfd3772ccc7d4a895b68f 935 927 2021-01-18T14:44:55Z Parazyd 1 wikitext text/x-wiki = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zram''' as necessary. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 6b9e20773d8cd380949c601c94a8ecb335ca3e6b 936 935 2021-01-18T14:46:18Z Parazyd 1 /* (SSH) Login */ wikitext text/x-wiki = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zram''' as necessary. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 02b248ef8b09a4d26e7a3567a70c83cfd5b55f5c 937 936 2021-01-18T14:53:26Z Parazyd 1 /* More RAM */ wikitext text/x-wiki = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 3966bdd9f517c805e3196a7756c1ba5a3d4f655d 938 937 2021-01-18T14:57:17Z Parazyd 1 /* More RAM */ wikitext text/x-wiki = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 2fbc40176b97795ca3548b009ce413bab0aae1dd Anbox 0 124 928 2021-01-18T14:14:31Z Parazyd 1 Created page with "= Installation = From extras apt install anbox = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --s..." wikitext text/x-wiki = Installation = From extras apt install anbox = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img As '''user''': anbox session-manager anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully. 7f2badb244e3103546ae5ecc11e2cbb5118e8b53 929 928 2021-01-18T14:15:15Z Parazyd 1 wikitext text/x-wiki = Installation = From extras apt install anbox = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img As '''user''': anbox session-manager anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully. Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. df246ea72ccb94b1dc8698cf7a2a510d4848a757 930 929 2021-01-18T14:16:04Z Parazyd 1 wikitext text/x-wiki = Installation = From extras apt install anbox = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img As '''user''': anbox session-manager anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully. Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. 9a22ffc794764a4bbdb245eb1dda5a706e8cad4f 931 930 2021-01-18T14:16:17Z Parazyd 1 /* Installation */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img As '''user''': anbox session-manager anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully. Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. ea42d183304a663ec18e636a4126211b8850b446 932 931 2021-01-18T14:16:46Z Parazyd 1 /* Usage */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img As '''user''': export ANBOX_LOG_LEVEL=debug anbox session-manager anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully. Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. 75c0ff7a14167a38727b7f9ed1dda9eda55c030e 933 932 2021-01-18T14:17:56Z Parazyd 1 /* Usage */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img As '''user''': export ANBOX_LOG_LEVEL=debug anbox session-manager anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully. Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. You can also find some useful logs in /var/lib/anbox/logs 113a2eb8bd304c6686d615170521069f599b4d94 934 933 2021-01-18T14:22:11Z Parazyd 1 /* Usage */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img As '''user''': export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully. Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. You can also find some useful logs in /var/lib/anbox/logs e05f2c58a9f3f5a83be6881a37d6fc67f22a9e2a 939 934 2021-01-18T15:57:24Z Parazyd 1 /* Installation */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. You might have to enable zram or classic swap (at least 1GB). = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img As '''user''': export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully. Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. You can also find some useful logs in /var/lib/anbox/logs 8c901e0d4be0decaf63bf71037d5ab333f18630e 941 939 2021-01-18T21:04:48Z Parazyd 1 /* Usage */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. You might have to enable zram or classic swap (at least 1GB). = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img You should be able to start Anbox through the '''Menu->Debian->Anbox'''. Be patient with the splash screen. It takes a long time. An alternative to starting Anbox is the following: As '''user''' in a terminal: export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. You can also find some useful logs in /var/lib/anbox/logs To free up some memory after you're done with usage: kill -3 `pgrep -f session-manager` 57e8a877422448a068a16ced3a2bdd2a19d9a76c 942 941 2021-01-18T21:08:51Z Parazyd 1 /* Usage */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. You might have to enable zram or classic swap (at least 1GB). = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img You should be able to start Anbox through the '''Menu->Debian->Anbox'''. Be patient with the splash screen. It can take a looong time. == Alternative (CLI) == Same as above, the initscript should start anbox's container manager. As '''user''' in a terminal: export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. == Tips == To free up some memory after you're done with usage: kill -3 `pgrep -f session-manager` You can also find some useful logs in /var/lib/anbox/logs 3f64461d2ece02268bfb72326842b10aa0ed8887 943 942 2021-01-18T21:15:35Z Parazyd 1 /* Usage */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. You might have to enable zram or classic swap (at least 1GB). = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img You should be able to start Anbox through the '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time. == Alternative (CLI) == Same as above, the initscript should start anbox's container manager. As '''user''' in a terminal: export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. == Tips == To free up some memory after you're done with usage: kill -3 `pgrep -f session-manager` You can also find some useful logs in /var/lib/anbox/logs 0dc3be64144cbbfd09c15fac7aa603b2c858cfb8 944 943 2021-01-18T21:16:22Z Parazyd 1 /* Usage */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. You might have to enable zram or classic swap (at least 1GB). = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img You should be able to start Anbox through '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time. == Alternative (CLI) == Same as above, the initscript should start anbox's container manager. As '''user''' in a terminal: export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. == Tips == To free up some memory after you're done with usage: kill -3 `pgrep -f session-manager` You can also find some useful logs in /var/lib/anbox/logs 0f924849517a718c122ed8bcb569734c571725d1 PinePhone 0 93 940 717 2021-01-18T16:06:27Z Parazyd 1 /* Status */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shows (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] b21dd53778e227b7d00d427ca003896baef77b4b Nokia N900 0 48 945 870 2021-01-21T22:57:35Z Sicelo 5 Make it clear that gpu driver isn't FOSS wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || Uses omapfb, not omapdrmfb yet |- | 3D Acceleration || Yes || Works, using proprietary PowerVR SGX blobs |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration |- | 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || Driver problems in mainline |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.] |- | Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work |- | Compass || N/A || Missing in hardware |- | Proximity sensor || Yes || No integration yet |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Missing in hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || || Needs complex v4l work |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 414e39d8a6dd1351af3e23f86bde318bf287e4a2 Main Page 0 1 946 899 2021-01-26T18:56:40Z Parazyd 1 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Getting Started == [[Getting_Started]] == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> a4a59b48593748972a5e2563fc76a056883132b9 947 946 2021-01-26T18:57:01Z Parazyd 1 /* Getting Started */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Getting Started == See [[Getting_Started|Getting Started]] == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> e5b19dd039ada167ac1c1d6472c0cab3ed4d3273 Anbox 0 124 948 944 2021-01-27T09:47:02Z Parazyd 1 /* Tips */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. You might have to enable zram or classic swap (at least 1GB). = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img You should be able to start Anbox through '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time. == Alternative (CLI) == Same as above, the initscript should start anbox's container manager. As '''user''' in a terminal: export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. == Tips == === Free memory after usage === To free up some memory after you're done with usage: kill -3 `pgrep -f session-manager` === Logs === You can export an environment variable to get some more debug output from Anbox export ANBOX_LOG_LEVEL=debug Plus, you can also find some useful logs in /var/lib/anbox/logs. === Running Anbox in the Leste VM === Under qemu, it is possible to run Anbox in a VM. (Please add instructions for other VM backends if you test them) A command line that is tested to work: qemu-system-x86_64 -enable-kvm -cpu host -m 4G \ -smp cores=4 -drive file=maemo-leste.qcow2,if=virtio \ -net nic -net user,hostfwd=tcp::2223-:22 \ -usb -device usb-tablet \ -vga virtio -display gtk,gl=on The <code>-vga virtio -display gtk,gl=on</code> is the important part. It should also be possible to use plain SDL rather than GTK with <code>-display sdl,gl=on</code> instead. When booted, you should see that hardware acceleration is enabled in the kernel log. # dmesg | grep -i dri Once enabled, on beowulf you also need the backports kernel, so you can install it by enabling the backports repository: # echo "deb https://pkgmaster.devuan.org/merged beowulf-backports main" >> /etc/apt/sources.list # apt update # apt -t beowulf-backports install linux-image-amd64 # reboot # apt install anbox Then you can use Anbox normally. 1856bb034430eb8998ef7809d658a724f564e9b1 950 948 2021-01-27T09:54:08Z Parazyd 1 /* Installation */ wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. [[File:Anbox-ham.png|400px]] You might have to enable zram or classic swap (at least 1GB). = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img You should be able to start Anbox through '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time. == Alternative (CLI) == Same as above, the initscript should start anbox's container manager. As '''user''' in a terminal: export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. == Tips == === Free memory after usage === To free up some memory after you're done with usage: kill -3 `pgrep -f session-manager` === Logs === You can export an environment variable to get some more debug output from Anbox export ANBOX_LOG_LEVEL=debug Plus, you can also find some useful logs in /var/lib/anbox/logs. === Running Anbox in the Leste VM === Under qemu, it is possible to run Anbox in a VM. (Please add instructions for other VM backends if you test them) A command line that is tested to work: qemu-system-x86_64 -enable-kvm -cpu host -m 4G \ -smp cores=4 -drive file=maemo-leste.qcow2,if=virtio \ -net nic -net user,hostfwd=tcp::2223-:22 \ -usb -device usb-tablet \ -vga virtio -display gtk,gl=on The <code>-vga virtio -display gtk,gl=on</code> is the important part. It should also be possible to use plain SDL rather than GTK with <code>-display sdl,gl=on</code> instead. When booted, you should see that hardware acceleration is enabled in the kernel log. # dmesg | grep -i dri Once enabled, on beowulf you also need the backports kernel, so you can install it by enabling the backports repository: # echo "deb https://pkgmaster.devuan.org/merged beowulf-backports main" >> /etc/apt/sources.list # apt update # apt -t beowulf-backports install linux-image-amd64 # reboot # apt install anbox Then you can use Anbox normally. 8782161cc1c6b655151ea2500ec8e8bd8356dcff 951 950 2021-01-27T09:55:34Z Parazyd 1 wikitext text/x-wiki = Installation = From extras apt install anbox Or install anbox from HAM. [[File:Anbox-ham.png|400px]] You might have to enable zram or classic swap (at least 1GB). = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img \_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img You should be able to start Anbox through '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time. == Alternative (CLI) == Same as above, the initscript should start anbox's container manager. As '''user''' in a terminal: export ANBOX_LOG_LEVEL=debug anbox session-manager This should output: user@devuan-pinephone:~$ anbox session-manager [ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context [ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL [ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted In another terminal, also as '''user''': anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster. You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities. == Tips == === Free memory after usage === To free up some memory after you're done with usage: kill -3 `pgrep -f session-manager` === Logs === You can export an environment variable to get some more debug output from Anbox export ANBOX_LOG_LEVEL=debug Plus, you can also find some useful logs in /var/lib/anbox/logs. === Running Anbox in the Leste VM === Under qemu, it is possible to run Anbox in a VM. (Please add instructions for other VM backends if you test them) A command line that is tested to work: qemu-system-x86_64 -enable-kvm -cpu host -m 4G \ -smp cores=4 -drive file=maemo-leste.qcow2,if=virtio \ -net nic -net user,hostfwd=tcp::2223-:22 \ -usb -device usb-tablet \ -vga virtio -display gtk,gl=on The <code>-vga virtio -display gtk,gl=on</code> is the important part. It should also be possible to use plain SDL rather than GTK with <code>-display sdl,gl=on</code> instead. When booted, you should see that hardware acceleration is enabled in the kernel log. # dmesg | grep -i dri Once enabled, on beowulf you also need the backports kernel, so you can install it by enabling the backports repository: # echo "deb https://pkgmaster.devuan.org/merged beowulf-backports main" >> /etc/apt/sources.list # apt update # apt -t beowulf-backports install linux-image-amd64 # reboot # apt install anbox Then you can use Anbox normally. = Further reading = https://wiki.postmarketos.org/wiki/Anbox https://anbox.io/ df7c92183c33125d16112013277498e3598e08cc File:Anbox-ham.png 6 125 949 2021-01-27T09:52:17Z Parazyd 1 Anbox in HAM wikitext text/x-wiki Anbox in HAM 93c2e34a43b56d173d2a3a22eec1bbda61e4eade Motorola Droid Bionic 0 111 952 894 2021-01-27T15:33:40Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~70mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Make Audio Automaticaly set up (Temporary Solution) ==== Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot. amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50% ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 7b3c2080eba697dba03ae019553f507f82a12779 992 952 2021-04-30T20:03:16Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Untested |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || |- | Idle power consumption || ~70mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 8dca4b2a1a59dfbdec58213e831c51ac5c526649 Nokia N900 0 48 953 945 2021-01-27T15:39:11Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || N/A || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Patial || Works (minus speaker protection), but requires complex alsa configuration no ucm support |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || Missing in hardware |- | Gyro || N/A|| Missing in hardware |- | Proximity sensor || No || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || Now hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || |- | Idle power consumption || ~300mW || No device dosent enter RET mode or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 73b60fe9bcf4adec89f093c95d7ea2ba0ebf1197 954 953 2021-01-29T00:32:03Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Patial || Works (minus speaker protection), but requires complex alsa configuration no ucm support |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || Missing in hardware |- | Gyro || N/A|| Missing in hardware |- | Proximity sensor || No || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || No device dosent enter RET mode or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] b1d3b5fb85ec463dcf4b390415617b91627f5d53 955 954 2021-01-29T00:32:50Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Patial || Works (minus speaker protection), but requires complex alsa configuration no ucm support |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || Missing in hardware |- | Gyro || N/A|| Missing in hardware |- | Proximity sensor || No || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device dosent enter RET mode or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 87bba5270c735dfb07cd8c892289074b013d2b7c 956 955 2021-01-29T00:34:29Z Uvos 39 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Patial || Works (minus speaker protection), but requires complex alsa configuration no ucm support |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters) |- | Bluetooth || No || |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || Missing in hardware |- | Gyro || N/A|| Missing in hardware |- | Proximity sensor || No || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device dosent enter RET mode or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 91dab7b77858b8ed209928c813573b2dcd13409a 957 956 2021-01-29T16:19:23Z Sicelo 5 wikitext text/x-wiki {{Stub}} {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} The Nokia N900. == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 394d230f6be62170ad316d1f7183daebe0b59dc6 Motorola Droid 4 0 50 958 911 2021-02-04T21:39:46Z Parazyd 1 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] b2618865a0cc22771917b4c11646ea6db301c59c 959 958 2021-02-04T21:41:35Z Parazyd 1 /* Status */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero. ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] aa87ab96b009f3377ada3ce6f06078c0e914d969 971 959 2021-03-31T20:31:37Z Uvos 39 /* Stuff to try */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this over SSH: <pre> Read modem output: # cat /dev/motmdm1 & Online modem: # printf "AT+CFUN=1\r" > /dev/motmdm1 Connect to network: # printf "AT+COPS=1\r" > /dev/motmdm1 Print connected network: # printf "AT+COPS?\r" > /dev/motmdm1 Not sure, do it anyway: # printf "AT+SCRN=0\r" > /dev/motmdm1 Dial a number: # printf "ATD+1234567890\r" > /dev/motmdm1 Hang up: # printf "ATH\r" > /dev/motmdm1 Answer incoming call: # printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] 217d575844f220e34b430052c0a69c708d0f8a89 972 971 2021-03-31T20:33:36Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] deaf4d960817b086ff42021cdf3528643e0553be Tricks 0 120 960 884 2021-02-05T08:45:10Z Parazyd 1 Firefox tip for touchscreen wikitext text/x-wiki List of tricks: ==== Randomize MAC Address ==== Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern. The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces. <pre>apt install -y macchanger </pre> During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC. <pre> macchanger wlan0 -e -a ifconfig wlan0 up </pre> ==== Keyboard / Mouse sharing with PC ==== To use a leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this. <pre> https://github.com/debauchee/barrier Barrier software-KVM switch </pre> A hildonized maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling. ==== Touchscreen support in Firefox (firefox-esr) ==== Add the necessary environment variable: echo "MOZ_USE_XINPUT2 DEFAULT=1" >> /etc/security/pam_env.conf Then in firefox, open '''about:config''' and set '''dom.w3c_touch_events.enabled''' to '''1'''. You can also set a mobile useragent by creating a string key called '''general.useragent.override'''. Then set something like this: Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0 1b998d45fe758b946c7664394a0b3c67d6321302 961 960 2021-02-05T08:47:27Z Parazyd 1 Cleanup wikitext text/x-wiki = Randomize MAC Address = Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern. The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces. apt install -y macchanger During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC. macchanger wlan0 -e -a ifconfig wlan0 up = Keyboard / Mouse sharing with PC = To use a Leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this. https://github.com/debauchee/barrier Barrier software-KVM switch A hildonized Maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling. = Touchscreen support in Firefox (firefox-esr) = Add the necessary environment variable: echo "MOZ_USE_XINPUT2 DEFAULT=1" >> /etc/security/pam_env.conf Then in firefox, open '''about:config''' and set '''dom.w3c_touch_events.enabled''' to '''1'''. You can also set a mobile useragent by creating a string key called '''general.useragent.override'''. Then set something like this: Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0 190a18eb5f17cf07e27bc2d8a14d652875a7de6d 962 961 2021-02-05T08:48:51Z Parazyd 1 wikitext text/x-wiki __FORCETOC__ = Randomize MAC Address = Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern. The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces. apt install -y macchanger During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC. macchanger wlan0 -e -a ifconfig wlan0 up = Keyboard / Mouse sharing with PC = To use a Leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this. https://github.com/debauchee/barrier Barrier software-KVM switch A hildonized Maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling. = Touchscreen support in Firefox (firefox-esr) = Add the necessary environment variable: echo "MOZ_USE_XINPUT2 DEFAULT=1" >> /etc/security/pam_env.conf Then in firefox, open '''about:config''' and set '''dom.w3c_touch_events.enabled''' to '''1'''. You can also set a mobile useragent by creating a string key called '''general.useragent.override'''. Then set something like this: Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0 d976b27e693fdd4a7ac124c99a665f60bbafae34 Wishlist 0 89 963 922 2021-02-07T02:55:53Z Rasmarc 43 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. b57d84892273111074b69bcabc7dbaf6a7a29589 Image Builder 0 100 964 897 2021-02-12T23:58:35Z Venji10 46 add zsh to dependencies list wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == '''[https://github.com/maemo-leste/image-builder Github]''' 1.) Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev zsh</pre> 1.1) If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream <pre> # wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres # ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/beowulf </pre> 2.) In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_arm_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * raspi4 * rock64 * pinephone-dontbeevil * pinephone * pinetab * sunxi * turbox-twister ea3279bcb6ff2b5764a6a836c7cd62072f89028b 965 964 2021-02-16T21:45:44Z Venji10 46 git is required for cloning repositories wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == '''[https://github.com/maemo-leste/image-builder Github]''' 1.) Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev zsh git</pre> 1.1) If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream <pre> # wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres # ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/beowulf </pre> 2.) In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_arm_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * raspi4 * rock64 * pinephone-dontbeevil * pinephone * pinetab * sunxi * turbox-twister 7dcb124d03670b15ad84886272214b15286cf44e Status/GPS 0 76 966 852 2021-03-03T13:31:53Z Parazyd 1 /* Setting up GPSD with gpsfake on a VM */ wikitext text/x-wiki == Fremantle Gypsy == is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon". location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD. == Setting up GPSD with gpsfake on a VM == Install gpsd and gpsd-clients: <pre> apt install gpsd gpsd-clients </pre> Stop apparmor (for testing only!): <pre> /etc/init.d/apparmor stop aa-teardown </pre> And then you can run gpsfake using test files from the gpsd repo: <pre> git clone https://github.com/maemo-leste-upstream-forks/pkg-gpsd gpsfake -c 1 pkg-gpsd/test/daemon/nokia-ld-4w.log </pre> Then in another terminal, type: <pre> cgps </pre> And you should see the information from the GPS log be replayed. == Relevant URLs == * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363 * <s>(On combining multiple gps sources such as A-GPS/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html</s> (not actually relevant, A-GPS needs to fed to the GPS driver/subsystem, not merged as info into gpsd) * supl implementation: https://github.com/tajuma/supl * https://talk.maemo.org/showthread.php?t=93910 * https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c == Regarding Droid 4 GPS == <pre> 17:05 < Wizzup> tmlind: wrt gps on the droid, you said there is currently a bug that allows opening /dev/gnss* only once? 17:09 < tmlind> Wizzup: i think that was a bug in gpsd, did not happen last time i tried. if you hit that one, opening secondary clients like gpspipe -R won't output anything 17:09 < Wizzup> ah, so it's not a kernel problem, ok 17:10 < Wizzup> once maemo-input-sounds is done (hopefully tonight) I will work on location stuff in case I can go on vacation and need gps, or until fmg is done with abook and we then look at rtcom 17:10 < Wizzup> in any case, I was wondering what the gps status is, but I think we'll start gpsd on demand, so that's fine 17:11 < Wizzup> from a pm pov, I assume closing the fd will stop gps recv? 17:11 < Wizzup> also, this is on the wiki: 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) 17:13 < tmlind> Wizzup: yeah so if hiking, you probably want to modprobe gnss_motmdm rate_ms=3000 or even higher to allow the soc to sleep inbetween 17:14 < tmlind> Wizzup: the default gpsd options only open device if there's a client and times out automatically 17:14 < Wizzup> interesting. 17:14 < Wizzup> regarding module - well noted 17:14 < Wizzup> I didn't know gpsd auto closed, that's nice. 17:15 < tmlind> i think i measured about 200 - 250 mW with gps enabled screen blanked etc </pre> == Regarding A-GPS in general, but also N900 and Droid 4 specifics == <pre> 17:15 < Wizzup> also ran into this: https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html 17:15 < Entitlement> Wizzup - [ Re: [gpsd-dev] Using multiple location sources to improve accuracy and r ] 17:15 < Wizzup> (regarding agps) 17:15 < tmlind> Wizzup: yeah so don't enable gpsd -n option, that will keep the gps open 17:15 < Wizzup> looks like ESR suggests to write a daemon that sits in the middle and mixes in agps info 17:15 < Wizzup> ok 17:16 < Wizzup> regarding rate_ms, I wonder if it makes more sense to keep it lower until a proper fix is found 17:16 < Wizzup> although I suppose that's only the reporting rate, so it probably doesn't matter 17:16 < tmlind> yeah it defaults to 1s so just leave it out by default 17:16 < tmlind> it will be some generic option eventually and not a module param 17:17 -!- z3ntu_ [z3ntumatri@gateway/shell/matrix.org/x-lnssiqwycssoqteb] has quit [Quit: Idle for 30+ days] 17:18 < tmlind> not sure how much stuff i'll get done over next few months in general, but at some point i'm planning to continue on the droid4-agps tool.. 17:19 < Wizzup> tmlind: what would that do? 17:19 < Wizzup> I figured agps could be done via with https://github.com/tajuma/supl 17:19 < Entitlement> Wizzup - [ GitHub - tajuma/supl ] 17:19 < Wizzup> s/via with/with this/ 17:20 -!- peetah [~peetah@cha92-9-82-236-202-86.fbx.proxad.net] has joined #maemo-leste 17:22 < bencoh> (tested and more or less working on maemo5, btw) 17:22 < Wizzup> bencoh: just now? 17:22 < bencoh> no 17:22 < Wizzup> :) 17:23 < bencoh> I used it to proxify supl requests to google 17:23 < tmlind> Wizzup: hmm maybe not sure. in this case we need to download qcom provided up to date xtra2.bin file for the gnss, not sure if the older formats work at all for the gnss 17:25 < bencoh> tmlind: I'd tend to think you would need to keep gps "always on" before the first fix 17:25 < bencoh> otherwise you will never get enough information from satellites 17:25 < bencoh> (unless you have agps/supl, of course) 17:26 < Wizzup> tmlind: from what I can tell that tool just takes lac/mcc/mns and such (like we can get from ofono or from modem directly) and just calls to a SUPL service? 17:27 < bencoh> Wizzup: google would even return you a rough position with those 17:27 < tmlind> bencoh: yes it does that already automatically and won't start idling until the fix is done 17:27 < bencoh> tmlind: ah, I see 17:28 < tmlind> Wizzup: yeh i figured, not sure if the modem nvram settings for supl are working or not, i somehow have an impression they're only working for some older modems, could be wrong 17:28 < Wizzup> I don't know enough about AGPS clearly, but from what I currently understand, it's just a data connection to a server with some cell data 17:29 < Wizzup> so I am not sure what the modem would do specifically 17:29 < Wizzup> I suppose there are probably many "assisted" methods 17:29 < bencoh> Wizzup: you're supposed to receive orbital data / almanac 17:30 < Wizzup> ah 17:30 < bencoh> and feed it to the gps subsystem 17:30 < tmlind> yeah this xtra2.bin stuff is an almanac in some proprietary format for a week i think 17:30 < Wizzup> oh, right, to actually feed it 17:30 < Wizzup> I get it now. 17:30 < Wizzup> when I was searching for methods to tell gpsd about agps nothing turned out, explains it now 17:31 < Wizzup> s/turned out/turned up/ 17:31 < bencoh> iiuc on n900, the modem itself manages the supl connection; the location daemon only acts as a proxy to provide it a tcp connection 17:31 < Wizzup> ok, yeah, so for the n900 we will have to RE some stuff 17:31 < bencoh> yeah 17:31 < tmlind> bencoh: afaik also mdm6600 nvram has something for supl server, not sure if it works though 17:32 < tmlind> bencoh: if you want to try it, you can tweak the nvram values with tcmdrw on github.com/tmlind 17:32 < bencoh> tmlind: meaning implementing/RE-ing such a proxy would make sense for both platforms 17:33 < tmlind> bencoh: hmm proxy running where? on the device? 17:33 < bencoh> on n900/maemo5, yeah 17:33 < bencoh> iirc it is location-proxy (forked on demand I think) 17:33 < tmlind> well i think the modem uses the supl server directly probably based on some requirements from the ministry of silly walks 17:34 < Wizzup> bencoh: there is location-proxy and location-daemon btw 17:34 < bencoh> it does; the "proxy" only provides the modem with a mean to open a tcp socket and read/write to it 17:34 < bencoh> Wizzup: indeed 17:34 < Wizzup> if you have more info please share :) 17:34 < Wizzup> I can RE some stuff, but want to RE the right things only 17:35 < bencoh> I haven't toyed with those for quite some time, but lemme see 17:35 < tmlind> well the thing to try with droid4 mdm6600 would be to configure supl server in nvram, start modem data connection, then gps and see how fast it gets a fix 17:38 < tmlind> i'd try clearing openpst NV_AAGPS_XTRA_ENABLED_I value to try to disable xtra2.bin use, then try to configure whatever nvram values there might be for a supl server, sorry no idea what those entries might be but i see the dumps contain some url in hex format 17:40 < bencoh> Wizzup: see /usr/lib/liblas.so.0.0.0 17:41 < bencoh> especially the las_socket_* 17:41 < bencoh> location-proxy refers to those 17:42 < Wizzup> hm 32K 17:42 < Wizzup> this is likely all n900 specific though right? 17:42 < bencoh> Wizzup: http://pastebin.notk.org/pastebin.php?show=f7f7b371d 17:42 < Entitlement> bencoh - [ pastebin private pastebin - collaborative debugging tool ] 17:42 < bencoh> most likely n900-specific yeah 17:42 < tmlind> hmm so a quick search for the NV_AAGPS_XTRA_ENABLED_I points to some earlier pastebin page at https://pastebin.com/dyfsUcHc, maybe try configuring those and disable xtra stuff? 17:42 < Entitlement> tmlind - [ QPST 378 NV Items that are in i535 but NOT in i535 dev ed - Pastebin.com ] 17:43 < bencoh> tmlind: I don't think supl server address would go into nvram 17:43 < Wizzup> bencoh: ah, so you're suggesting we make some generic "how to write supl data to a modem" lib? 17:43 < bencoh> tmlind: well, unless it has a mean to actually ask for a specific supl server from the AP processor 17:43 < tmlind> bencoh: i'm pretty sure the uri goes to nvram, see NV_CGPS_UMTS_PDE_SERVER_ADDR_URL_I in the link above 17:43 < bencoh> oh 17:44 < bencoh> well, on n900/maemo5, the host gets to decide on that 17:44 < tmlind> ok 17:45 < bencoh> Wizzup: I guess we would want a "generic" glue lib with support for various (two?) platforms 17:45 < tmlind> bencoh: there seems to be a bunch PDE related nvram entries, see libopenpst dm_nv.h file 17:46 < bencoh> right 17:47 < bencoh> Actually I wonder if the supl connection would need to go through the host cpu at all on the mdm6600 17:47 < tmlind> bencoh: no afaik it can't 17:48 < bencoh> it might try and use the gprs/umts data channels 17:48 < tmlind> i think it has to 17:48 < bencoh> without even bothering with the host 17:48 < tmlind> right 17:48 < bencoh> it's a completely different design then 17:48 < bencoh> meaning it should work automagically once we setup pde server properly 17:49 < tmlind> yeah it should hopefully unless it's working only in the xtra2.bin mode 17:49 < bencoh> and that it'll stop working forever once supl servers break support for it 17:49 < tmlind> bencoh: so i did also a tool for the xtra2.bin stuff but it's not complete, also on my github page droid4-agps or something like that 17:49 < bencoh> (unlike n900, where we managed to somehow get some kind of support using supl-proxy from tajuma) 17:50 < tmlind> bencoh: at least the supl stuff is a standard format, let's hope it works :) 17:51 < bencoh> it's "standard" until google decides some input fields become mandatory 17:51 < bencoh> but yeah 17:51 < tmlind> i think there are other supl servers available too, right? 17:51 < Wizzup> bencoh: there were other supl servers I think 17:51 < bencoh> (I think that's the reason supl.google.com doesn't work on n900 without any proxy) 17:51 < Wizzup> bencoh: oh? 17:51 < bencoh> well, it depends on your phone service provider 17:52 < bencoh> vodaphone has (had?) one for their customers, but it's not available from outside their network 17:52 < bencoh> nokia died 17:52 < bencoh> I think sony had one, but ... 17:53 < bencoh> we could also run one, but we'd need to write a fair bit of code for that 17:53 < Wizzup> didn't see any code for it so far 17:53 < Wizzup> (googling around) 17:54 < Wizzup> as in, for a supl server 17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8 17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves version ] 17:55 < bencoh> that's for the rrlp part 17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to wrap the RRLP payload in SUPL packets 17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort of what ntpd does 17:57 < Wizzup> it would be nice to have a supl server one can just run, though 17:57 < tmlind> yup 17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900 17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;) 17:57 < Wizzup> (for leste, to at least get the frameworks in place) 17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix 17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8 17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves version ] 17:55 < bencoh> that's for the rrlp part 17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to wrap the RRLP payload in SUPL packets 17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort of what ntpd does 17:57 < Wizzup> it would be nice to have a supl server one can just run, though 17:57 < tmlind> yup 17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900 17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;) 17:57 < Wizzup> (for leste, to at least get the frameworks in place) 17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix 17:58 < Wizzup> I should probably do it on fremantle too, didn't look at the proxying 17:58 < bencoh> (I think it stopped working at some point, but I haven't investigated it. It might be a cert issue) 17:58 < tmlind> well i meant running a proxying supl server on maemo.org picking data from various sources so devices would just point to the maemo supl server 17:58 < bencoh> Wizzup: Sicelo eventually wrote a howto https://wiki.maemo.org/N900_GPS_Proxy 17:58 < Entitlement> bencoh - [ N900 GPS Proxy - maemo.org wiki ] 17:59 < bencoh> tmlind: *nod* 17:59 < Wizzup> check 17:59 < Wizzup> tmlind: ah, right 17:59 < Wizzup> that's definitely a good stopgap at least 18:00 < bencoh> We almost have the code for that 18:00 < tmlind> yeah then adding supl data from some open source data feed could be just added 18:00 < bencoh> we just need to add multi-client support to supl-proxy 18:00 < tmlind> cool 18:01 < bencoh> err, except that supl-proxy will actually fetch data for every request 18:01 < tmlind> heh that probably creates a google maps traffic jam to where that server is hosted :) 18:01 < bencoh> :)) 18:02 < tmlind> not sure if there are some legal aspects to consider there, not familiar with the supl stuff really 18:02 < bencoh> you need to supply a valid cell (mnc/lac/whatever) coordinate, and supl response is customized accordingly 18:02 < bencoh> afaict 18:02 < tmlind> huh why do you need mnc/lac? 18:03 < tmlind> to limit the data size? 18:03 < bencoh> I'm pretty certain you wouldn't need it in theory to get a full ephemeric/almanac dump 18:03 < tmlind> bbl 18:03 < bencoh> but iirc it's mandatory for supl.google.com 18:04 < bencoh> (I can see a pretty good reason for that, actually ... google loves knowing where you are) 18:06 < Wizzup> yeah 18:06 < Wizzup> from 3) A-GPS here , there seem to be only a few https://www.reddit.com/r/privacy/comments/cldrym/how_to_degoogle_lineageos_in_2019/ 18:06 < Entitlement> Wizzup - [ How to deGoogle LineageOS in 2019 : privacy ] 18:06 < Wizzup> (providers that run a supl server) 18:12 < bencoh> wow, supl.sonyericsson.com actually works as well 18:13 < bencoh> and vodafone too. funny, last time I tried I couldn't use it 18:17 < tmlind> cool, anyways multiple source for the proxying supl server would be best, sort of like with nptd 18:17 * bencoh nods </pre> 44c28f6af40e377b31b9b965b567021d4e52ad68 IRC channel 0 54 967 736 2021-03-13T15:00:52Z Sicelo 5 info for matrix users wikitext text/x-wiki We are on '''irc.freenode.net''' ; channel '''#maemo-leste''' You can connect from your browser using the [https://webchat.freenode.net/ webchat]. However, a dedicated IRC client is recommended for long-term use. We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not 'police' the channel, it is also good etiquette to remain on-topic as far as possible. If you use Matrix, then you can connect to the IRC channel via Freenode's bridge. Simply join the room '''#freenode_#maemo-leste:matrix.org'''. However, please note the following caveats when using the bridge: * Matrix allows a message to have multiple lines (i.e. include returns). This does not look good on IRC clients. Therefore, please refrain from sending multi-line messages * Matrix allows sending media and files within the chat, while IRC does not. On IRC, this will appear as an URL. Please do not send any media or files directly into an IRC room. Use a pastebin, and paste the URL to the item, and include a brief explanation about the link. Otherwise no one might be willing to open it 043b2174b72801e028590a42ba5a31be76088dba Status/USB Peripheral 0 73 968 734 2021-03-27T11:09:09Z Wizzup 4 wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Bringing up network on your PC == After plugging USB from your device into your PC, issue: <pre> ip link set usb0 up # this one might not really be necessary ip address add 192.168.42.1/24 dev usb0 ssh root@192.168.42.2 </pre> == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: The default password is <code>toor</code>. (user: <code>root</code>) And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code> Now your Leste device should be able to use your PC network == Share Leste network with PC over USB == On PC (as root): <pre> ifconfig usb0 up 192.168.42.1 ip route add default via 192.168.42.2 </pre> On Leste (as root): <pre> iptables -A FORWARD -i wlan0 iptables -A POSTROUTING -t nat -s 192.168.42.1/32 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/conf/wlan0/forwarding </pre> If you want to share the wwan instead, switch out wlan0 for the wwan. == Notes == * The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code> 59611a5627eea4080e22790cbf5f5907c6ece159 969 968 2021-03-27T11:10:02Z Wizzup 4 wikitext text/x-wiki Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do anything useful yet. == Bringing up network on your PC == After plugging USB from your device into your PC, issue: <pre> ip link set usb0 up # this one might not really be necessary ip address add 192.168.42.1/24 dev usb0 ssh root@192.168.42.2 </pre> == Share PC network with Leste device == To also have the devices use your PC network, log into the devices: The default password is <code>toor</code>. (user: <code>root</code>) And then add the following route on the device: <pre> ip route add default via 192.168.42.1 # if this fails, first run ip route del default </pre> On your PC, issue: <pre> # (Maybe only one of these two echos is necessary) echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE </pre> Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code> Now your Leste device should be able to use your PC network == Share Leste network with PC over USB == On PC (as root): <pre> ifconfig usb0 up 192.168.42.1 ip route add default via 192.168.42.2 </pre> On Leste (as root): <pre> iptables -A FORWARD -i wlan0 iptables -A POSTROUTING -t nat -s 192.168.42.1/32 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/conf/wlan0/forwarding </pre> If you want to share the wwan instead, switch out wlan0 for the wwan (e.g. on the Droid that is 'wwan3'). == Notes == * The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code> 3efd46b15338425db4589cc7dbb9f6e8cb813fa6 User:Sicelo/Snippets 2 102 970 864 2021-03-27T14:10:06Z Sicelo 5 wikitext text/x-wiki Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect Force N900 to stop charging while connected to power echo off > /sys/class/power_supply/bq24150a-0/mode N900 bluetooth 00:26 < sicelo> sre: hi. (this isn't too important compared to the task at hand, but) iirc getting N900 bluetooth working with mainline needed some serdev work. do you know what still needs to be done? 00:28 < sre> enabling CONFIG_BT_HCIUART_NOKIA should give you a somewhat working bluetooth device. IIRC there were some issues that need to be debugged. Application wishlist from Wizzup <pre> Maybe fun to port: desktop: battery-eye (in vm al) catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category) live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/ datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/ personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/ humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/ DONE personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/ custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/ advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/ app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/ qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/ DONE http://maemo.org/downloads/product/Maemo5/miku-theme/ education: dorian http://maemo.org/downloads/product/Maemo5/dorian/ evopedia http://maemo.org/downloads/product/Maemo5/evopedia/ e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/ gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak games smw - http://maemo.org/downloads/product/Maemo5/smw/ warmux - http://maemo.org/downloads/product/Maemo5/wormux/ battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/ drnoksnes (!!!) freecell4maemo ? prboom bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/ puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/ rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/ uae4all goed laten werken neverball - http://maemo.org/downloads/product/Maemo5/neverball/ graphics mypaint (?) raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/ multimedia Boel coole/nuttige music players qspot http://maemo.org/downloads/product/Maemo5/qspot/ recorder http://maemo.org/downloads/product/Maemo5/recorder/ qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/ maetronome http://maemo.org/downloads/product/Maemo5/maetronome/ location and navigation modrana marble? http://maemo.org/downloads/product/Maemo5/marble/ marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/ maep for sure http://maemo.org/downloads/product/Maemo5/maep/ gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/ OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/ interessant http://maemo.org/downloads/product/Maemo5/snuggle/ internet and networking google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/ meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/ twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/ zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/ witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/ vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/ wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/ qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/ xchat irc http://maemo.org/downloads/product/Maemo5/xchat/ office xournal http://maemo.org/downloads/product/Maemo5/xournal/ quicknote http://maemo.org/downloads/product/Maemo5/quicknote/ mebook http://maemo.org/downloads/product/Maemo5/mebook/ portabase? http://maemo.org/downloads/product/Maemo5/portabase/ other -- science orrery -- http://maemo.org/downloads/product/Maemo5/orrery/ accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/ system (lots of themes) theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/ matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/ borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/ okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/ cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/ maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/ extra translations / languages </pre> Other stuff to do/test: <pre> - N900 flashlight - WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/ - WiFi monitor mode (N900 & Droid 4) - WiFi hotspot (Droid 4) </pre> https://gavv.github.io/articles/pulseaudio-under-the-hood/ <-- might be handy for voice calls b20c9a1385bc64b1f16876a3d97517b1332601c9 Getting Started 0 105 973 938 2021-04-05T18:57:53Z Clort 42 added some info for copying / installing image to microsd wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with cat /proc/partitions Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] a7634d72e37ff52daad046575cd72ee9ecb032dd 981 973 2021-04-10T00:42:36Z Clort 42 added instruction for expanding root partition wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with cat /proc/partitions Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = Expand the root partition to fill SD card = A helpful script is included to expand the root partition to fill the microSD card. After booting and logging in to root. execute /ex/expandcard.sh This will expand the root partition to fill the microSD card using resize2fs = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 3e435f5607af3cf763498d628f9d4ad7cd25b536 982 981 2021-04-10T00:43:02Z Clort 42 /* Expand the root partition to fill SD card */ wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with cat /proc/partitions Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = Expand the root partition to fill SD card = A helpful script is included to expand the root partition to fill the microSD card. After booting and logging in to root. execute /etc/expandcard.sh This will expand the root partition to fill the microSD card using resize2fs = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 594c2cd9e94fb5a67ea11b1569dd8ccc24a8f849 983 982 2021-04-10T00:43:45Z Clort 42 /* Expand the root partition to fill SD card */ wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with cat /proc/partitions Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = Expand the root partition to fill SD card = A helpful script is included to expand the root partition to fill the microSD card. After booting and logging in to root. execute /etc/expandcard.sh This will expand the root partition to fill the microSD card using resize2fs. = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 19fbe0a48aa1d8f10f762e5ae2a6d05470926d05 984 983 2021-04-10T05:01:22Z Clort 42 /* Expand the root partition to fill SD card */ wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with cat /proc/partitions Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = Expand the root partition to fill SD card = A helpful script is included to expand the root partition to fill the microSD card. After booting and logging in to root, execute/etc/expandcard.sh This will expand the root partition to fill the microSD card using resize2fs. = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 4ac3d1c9361df050fccb1903e7ef33a749faf4f8 Tweaking 0 104 974 912 2021-04-05T22:37:02Z Clort 42 added disable screen rotate setting and settings list entry wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner. ==== Show current gconf settings ==== <pre>gconftool -S \* |less</pre> ==== Battery icon ==== You can change the animation of the charging icon to show the current charge capacity: <pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort'' ==== Disable screen rotate ==== You can lock screen orientation to the current (disabling screen rotation) with <pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre> 882f50d46c49d1a2a43e2890ea277e31fc7e0cf4 975 974 2021-04-05T22:55:47Z Clort 42 more gconftool things to do wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner. ==== Show current gconf settings ==== <pre>gconftool-2 -R / |less</pre> <pre>gconftool -S \* |less</pre> ==== Battery icon ==== You can change the animation of the charging icon to show the current charge capacity: <pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort'' ==== Disable screen rotate ==== You can lock screen orientation to the current (disabling screen rotation) with <pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre> ==== Switch clock display to 24h ==== <pre>gconftool-2 -s -t bool /apps/clock/time-format true</pre> ==== Prevent user rearranging of app menu ==== <pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre> ==== Hide toolbar at bottom of osso-xterm (to get more lines) ==== <pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre> 8b83c5bb5d79f2e4c3cf9922e745c76836013ffe 976 975 2021-04-06T23:25:50Z Clort 42 /* Switch clock display to 24h */ wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner. ==== Show current gconf settings ==== <pre>gconftool-2 -R / |less</pre> <pre>gconftool -S \* |less</pre> ==== Battery icon ==== You can change the animation of the charging icon to show the current charge capacity: <pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort'' ==== Disable screen rotate ==== You can lock screen orientation to the current (disabling screen rotation) with <pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre> ==== Switch clock display to 24h ==== <pre>gconftool-2 -s /apps/clock/time-format -t bool true</pre> ==== Prevent user rearranging of app menu ==== <pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre> ==== Hide toolbar at bottom of osso-xterm (to get more lines) ==== <pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre> c65384e2e046d06d38b3a3df4d204e9305c0be6d 985 976 2021-04-10T11:38:39Z Clort 42 added preventing apt from autoremoving downloaded .deb packages wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner. ==== Show current gconf settings ==== <pre>gconftool-2 -R / |less</pre> <pre>gconftool -S \* |less</pre> ==== Battery icon ==== You can change the animation of the charging icon to show the current charge capacity: <pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort'' ==== Prevent autoremoval of downloaded .deb files ==== The tool 'apt' as an alternative to apt-get uses different configuration. To prevent apt from auto-deleting downloaded .deb packages do this: <pre>echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \ > /etc/apt/apt.conf.d/01keep-debs</pre> ==== Disable screen rotate ==== You can lock screen orientation to the current (disabling screen rotation) with <pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre> ==== Switch clock display to 24h ==== <pre>gconftool-2 -s /apps/clock/time-format -t bool true</pre> ==== Prevent user rearranging of app menu ==== <pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre> ==== Hide toolbar at bottom of osso-xterm (to get more lines) ==== <pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre> 93e468f2630ad217f1d64de0235a5635c61864d2 986 985 2021-04-10T11:43:28Z Clort 42 wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner. ==== Prevent autoremoval of downloaded .deb files ==== The tool 'apt' as an alternative to apt-get uses different configuration. To prevent apt from auto-deleting downloaded .deb packages do this: <pre>echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \ > /etc/apt/apt.conf.d/01keep-debs</pre> ===== GConf Settings ===== ==== Show current gconf settings ==== <pre>gconftool-2 -R / |less</pre> <pre>gconftool -S \* |less</pre> ==== Battery icon ==== You can change the animation of the charging icon to show the current charge capacity: <pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort'' ==== Disable screen rotate ==== You can lock screen orientation to the current (disabling screen rotation) with <pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre> ==== Switch clock display to 24h ==== <pre>gconftool-2 -s /apps/clock/time-format -t bool true</pre> ==== Prevent user rearranging of app menu ==== <pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre> ==== Hide toolbar at bottom of osso-xterm (to get more lines) ==== <pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre> dfe1a91b385802c891488d24e2858acafd728d70 Development/Modified Software 0 81 977 388 2021-04-06T23:30:35Z Clort 42 wikitext text/x-wiki TODO, expand on this, why they are patched, etc: * gtk2: extra widgets are added, menu patches, integration with virtual keyboard for (any) text field, theming * SDL: full screen patches, other window manager patches - SDL1.2 and SDL2 have different issues. Lacking keyboard input in fullscreen is top prio. * qt5 (?): TBD * gtk3 (?): Same as gtk2, currently not patched, though. * xorg-server: Patched modesetting for rotation. 84189dd5110a2ff9b4a3596b9a1b19b035ee3c6a File:Sixel.png 6 126 978 2021-04-06T23:44:04Z Clort 42 Sixel Graphics in uxterm on Maemo-Leste wikitext text/x-wiki Sixel Graphics in uxterm on Maemo-Leste bbb5c4adf39d81a810eee108c70883038d599af1 Hacks 0 127 979 2021-04-06T23:51:29Z Clort 42 Created page with "==== Fun Hacks for maemo-leste ==== ---- apt install -y uxterm imagemagick-6.q16 Add to ~/.bashrc: alias uxt="uxterm -ti vt340 -fa 'Monospace' -fs 16 -fullscreen" echo "c..." wikitext text/x-wiki ==== Fun Hacks for maemo-leste ==== ---- apt install -y uxterm imagemagick-6.q16 Add to ~/.bashrc: alias uxt="uxterm -ti vt340 -fa 'Monospace' -fs 16 -fullscreen" echo "convert \$@ -geometry 950x484 sixel:-" > /usr/local/bin/imgterm chmod uog+x /usr/local/bin/termimg display pictures as sixel graphics in your terminal with: termimg mypic.png <gallery>Sixel.png</gallery> You can also get thumbnails of directories with images with imagemagick and the shellscript [https://github.com/hackerb9/lsix/archive/master.zip lsix sixel thumbnailer] ---- 9b52b87da15abe41f6db24a0ea8b75a712263a14 980 979 2021-04-06T23:52:10Z Clort 42 /* Fun Hacks for maemo-leste */ wikitext text/x-wiki ==== Fun Hacks for maemo-leste ==== ---- apt install -y uxterm imagemagick-6.q16 Add to ~/.bashrc: alias uxt="uxterm -ti vt340 -fa 'Monospace' -fs 16 -fullscreen" echo "convert \$@ -geometry 950x484 sixel:-" > /usr/local/bin/imgterm chmod uog+x /usr/local/bin/termimg display pictures as sixel graphics in your terminal with: imgterm avatar-yinlee.png <gallery>Sixel.png</gallery> You can also get thumbnails of directories with images with imagemagick and the shellscript [https://github.com/hackerb9/lsix/archive/master.zip lsix sixel thumbnailer] ---- 8408468870d1d7cbea4bfc4e2ff637ff2bc5eda8 Status/Wireless 0 78 987 310 2021-04-12T17:16:29Z Wizzup 4 wikitext text/x-wiki Client mode should just work using the UI. == Mobile Hotspot == There is no UI for this yet. To share your mobile data over wireless, you will need to install dnsmasq and hostapd. You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set): <pre> wpa=2 ssid=Internet wpa_passphrase=secureinternetpassword </pre> You can copy the example config files to /etc/hostapd/ For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so: <pre> interface=lo,wlan0 </pre> You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example: <pre> dhcp-range=192.168.44.50,192.168.44.150,12h </pre> Then restart dnsmasq. Next, configure iptables: <pre> sudo iptables -A POSTROUTING -t nat -s 192.168.42.1/24 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 </pre> And finally bring up the interface and run hostapd: <pre> sudo ifconfig wlan0 192.168.42.2 sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf </pre> f429691d85bb10eb9802171efc14ff894e4f9562 988 987 2021-04-12T20:47:09Z Wizzup 4 wikitext text/x-wiki Client mode should just work using the UI. == Mobile Hotspot == There is no UI for this yet. To share your mobile data over wireless, you will need to install dnsmasq and hostapd. You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set): <pre> wpa=2 ssid=Internet wpa_passphrase=secureinternetpassword </pre> You can copy the example config files to /etc/hostapd/ For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so: <pre> interface=lo,wlan0 </pre> You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example: <pre> dhcp-range=192.168.44.50,192.168.44.150,12h </pre> Then restart dnsmasq. Next, configure iptables: <pre> sudo iptables -A POSTROUTING -t nat -s 192.168.44.1/24 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 </pre> And finally bring up the interface and run hostapd: <pre> sudo ifconfig wlan0 192.168.44.2 sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf </pre> 7c3427508cb3c79b641102d58ecf97485fc18421 Packaging 0 69 989 223 2021-04-13T22:33:21Z Sicelo 5 /* Workflow */ wikitext text/x-wiki The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste We use the Jenkins CI https://phoenix.maemo.org along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration The base logic of buildng Debian packages in Jenkins comes from https://jenkins-debian-glue.org = Workflow = Our workflow consists of having the packages in Git, along with respective branches. The master branch in git should represent the latest development. When the sources are ready, we create a new branch called "maemo/ascii", which represents the Devuan suite we base it on. Being git-based, our packages require the gbp.conf file inside the debian directory. All of our packages contain the exact same gbp.conf, which is the following: <pre> [DEFAULT] upstream-tag=%(version)s </pre> This file is used by gbp, which in turn is used by jenkins-debian-glue. The rest is standard Debian packaging. = Initial packaging = TODO = Updating a package = TODO 4e4d3a9ea8384102025e362db83f8b4f645611f4 Development/Building Packages 0 80 990 851 2021-04-14T16:02:25Z Sicelo 5 /* The git tag */ wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/beowulf Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. NB: The tags are used to checkout the source code itself, the debian directory is always taken from git HEAD == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste beowulf main contrib non-free deb https://maedevu.maemo.org/extras beowulf main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/beowulf - main branch for Devuan Beowulf target # maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. == Consideration for HAM == For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the <code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through <code>.desktop</code> files, while the former is done in <code>debian/control</code>. == Adding an icon to the package in HAM == In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''. Next, have your Build-Depends contain '''maemo-system-services-dev'''. maemo-system-services-dev will pull in the debhelper plugin. Following this, in your '''debian/control''', under your '''Package''', add the following entry: <pre> XB-Maemo-Icon-26: ${maemo:icon26} </pre> And finally, in '''debian/rules''', assuming you're using debhelper, add this: <pre> override_dh_gencontrol: dh_maemo_icon dh_gencontrol </pre> Finally, if using quilt, add the icon in '''debian/source/include-binaries''' <pre>$ echo debian/maemo-icon.png >> debian/source/include-binaries</pre> Further reading: https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections 554c6509cfc6b4ad394d621010ff57205a25c8ba 991 990 2021-04-14T16:14:23Z Sicelo 5 /* The git tag */ wikitext text/x-wiki = Maintenance workflow = Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way. Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches: # master # maemo/beowulf Ideally, the branches should have no difference, but sometimes this may vary. Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic. The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''. Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to do to make it ready for building on Jenkins: == The git tag == In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version so Jenkins and jenkins-debian-glue can figure out which revision to build. Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have: <code>libcal (0.3-2) unstable; urgency=medium</code> Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i> Once tagged, push the tag to git origin. NB: The tags are used to checkout the source code itself, the debian directory is always taken from git HEAD, so there is no need to update the tag when changing the packaging (i.e. in debian directory). Tag shall be updated only when there are changes to the source files. == gbp.conf == Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents: <code> [DEFAULT] upstream-tag=%(version)s </code> Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed. = How you can build packages = Building a packages is easier than one might think, it requires roughly the following steps: #. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]]. #. Source code of a package, obtain either via '''git''' or '''apt source <packagename>''' #. Install build dependencies (run from source directory): '''sudo apt-get build-dep .''' #. Build a package using '''dpkg-buildpackage -uc -b''' You can now install the package you have just built with '''dpkg -i somename.deb''' Also see: https://wiki.debian.org/HowToPackageForDebian == Submitting changes == If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME For now, we will take care of updating tags and branches. = How packages end up in the repository = There are currently two repositories: * The main repository: https://maedevu.maemo.org/leste * The extras repository: https://maedevu.maemo.org/extras The packages in the extras repository are not core, but useful applications nonetheless. The codenames and an /etc/apt/sources.list file entry would look like the following: <code> deb https://maedevu.maemo.org/leste beowulf main contrib non-free deb https://maedevu.maemo.org/extras beowulf main contrib non-free </code> Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup) == How packages are built using Jenkins == Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted) All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here: https://github.com/maemo-leste/jenkins-integration/blob/master/config.py Every repository has a branch for each release, for example: # maemo/beowulf - main branch for Devuan Beowulf target # maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version See [[Development/Branches]] for more information on the usual branches flow. = Maemo Leste Extras = If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker Have a look at the README in that repository and open a ticket. == Consideration for HAM == For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the <code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through <code>.desktop</code> files, while the former is done in <code>debian/control</code>. == Adding an icon to the package in HAM == In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''. Next, have your Build-Depends contain '''maemo-system-services-dev'''. maemo-system-services-dev will pull in the debhelper plugin. Following this, in your '''debian/control''', under your '''Package''', add the following entry: <pre> XB-Maemo-Icon-26: ${maemo:icon26} </pre> And finally, in '''debian/rules''', assuming you're using debhelper, add this: <pre> override_dh_gencontrol: dh_maemo_icon dh_gencontrol </pre> Finally, if using quilt, add the icon in '''debian/source/include-binaries''' <pre>$ echo debian/maemo-icon.png >> debian/source/include-binaries</pre> Further reading: https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections 2efba4cbd24d04370c435ea4de8556c917af2463 Talks 0 99 993 615 2021-05-04T18:21:50Z Parazyd 1 Add Bitreichcon 2020 talk. wikitext text/x-wiki == Bitreichcon 2020 - 2nd May 2020 == '''The state of Maemo Leste''' - ''Ivan Jelincic (parazyd)'' [gopher://bitreich.org/1/con/2020 Event info (gopher)] Slides: [gopher://bitreich.org/0/con/2020/rec/state-of-maemo-leste.md markdown] Audio: [gopher://bitreich.org/9/con/2020/rec/brcon2020-state-of-maemo-leste.ogg OGG] == FOSDEM 2020 - Freedom Main Track - 2nd February 2020 == '''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)'' [https://fosdem.org/2020/schedule/event/smartphones/ Event info] Video: [https://video.fosdem.org/2020/Janson/smartphones.webm WebM/VP9], [https://video.fosdem.org/2020/Janson/smartphones.mp4 MP4] == OpenFest 2019 - 2nd November 2019== '''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)'' [https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info] Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious]) == OpenAlt 2019 - 2nd November 2019 == '''Debian v kapse''' - ''Pavel Machek'' [https://openalt.cz/2019/program_detail.php#event_32 Event info] == Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 == '''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)'' Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious]) == FOSDEM 2019 - Lightning Talk - 2nd February 2019 == '''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)'' [https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info] Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4] [https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides] == OpenFest 2018 - 4th November 2018 == '''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)'' [https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info] Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM] [https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides] == OpenAlt 2018 - 3rd November 2018 == '''Maemo Leste - Debian do kapsy''' - ''Pavel Machek'' [https://openalt.cz/2018/program_detail.php#event_14 Event info] Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious]) [https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides] 2357f22cdbbc37fa96147d34e2b08ac413a090bd 994 993 2021-05-04T18:28:43Z Parazyd 1 Add Pavel's talk on installfest.cz wikitext text/x-wiki == installfest.cz - 3rd March 2021 == ''' Rok Linuxového telefonu''' - ''Pavel Machek'' [https://installfest.cz/if21/ Event info] Video [https://www.youtube.com/watch?v=KYmn9-0Tzz8&list=PLub6xBWO8gV-DFBwRbs4xJq4sTGcvEcN0&index=2 YouTube] (via [https://yewtu.be/watch?v=KYmn9-0Tzz8 invidious]) == Bitreichcon 2020 - 2nd May 2020 == '''The state of Maemo Leste''' - ''Ivan Jelincic (parazyd)'' [gopher://bitreich.org/1/con/2020 Event info (gopher)] Slides: [gopher://bitreich.org/0/con/2020/rec/state-of-maemo-leste.md markdown] Audio: [gopher://bitreich.org/9/con/2020/rec/brcon2020-state-of-maemo-leste.ogg OGG] == FOSDEM 2020 - Freedom Main Track - 2nd February 2020 == '''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)'' [https://fosdem.org/2020/schedule/event/smartphones/ Event info] Video: [https://video.fosdem.org/2020/Janson/smartphones.webm WebM/VP9], [https://video.fosdem.org/2020/Janson/smartphones.mp4 MP4] == OpenFest 2019 - 2nd November 2019== '''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)'' [https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info] Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious]) == OpenAlt 2019 - 2nd November 2019 == '''Debian v kapse''' - ''Pavel Machek'' [https://openalt.cz/2019/program_detail.php#event_32 Event info] == Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 == '''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)'' Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious]) == FOSDEM 2019 - Lightning Talk - 2nd February 2019 == '''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)'' [https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info] Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4] [https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides] == OpenFest 2018 - 4th November 2018 == '''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)'' [https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info] Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM] [https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides] == OpenAlt 2018 - 3rd November 2018 == '''Maemo Leste - Debian do kapsy''' - ''Pavel Machek'' [https://openalt.cz/2018/program_detail.php#event_14 Event info] Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious]) [https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides] dac53941173335787e9b342ef03ad06d1758f521 Debugging 0 128 995 2021-05-05T13:27:19Z Wizzup 4 Created page with "=== Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crash..." wikitext text/x-wiki === Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages * Install the -dbg and -dbgsym dependencies of the packages * Attach to the program in gdb (or start it from gdb) ==== Add the debug repositories ==== Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file: <pre> # cat /etc/apt/sources.list.d/debug.list deb http://deb.debian.org/debian-debug/ buster-debug main deb http://deb.debian.org/debian-debug/ buster-backports-debug main deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free </pre> ==== Identify the program that crashes ==== Example: location-status (the location status applet) crashes. Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols: <pre> # dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so # apt-cache search location-status | grep dbg location-status-dbgsym - debug symbols for location-status # apt install location-status-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: location-status-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 27,1 kB of archives. After this operation, 41,0 kB of additional disk space will be used. 0% [Working] Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB] Fetched 27,1 kB in 0s (55,8 kB/s) Selecting previously unselected package location-status-dbgsym. (Reading database ... 96891 files and directories currently installed.) Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ... Unpacking location-status-dbgsym (0.111-1+2m7) ... Setting up location-status-dbgsym (0.111-1+2m7) ... </pre> ==== Install additional debug files ==== To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd: <pre> # ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so </pre> This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg libglib2.0-0-dbgsym - debug symbols for libglib2.0-0 # apt install libglib2.0-0-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libglib2.0-0-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 4240 kB of archives. After this operation, 4984 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB] 0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%] Fetched 4240 kB in 3s (1278 kB/s) Selecting previously unselected package libglib2.0-0-dbgsym:armhf. (Reading database ... 96893 files and directories currently installed.) Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... </pre> We can repeat this process until we get satisfactory backtraces in gdb. For example: <pre> # gdb attach <pid> [...] Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 284 ../../../glib/grefcount.c: No such file or directory. (gdb) bt #0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 #1 0xb660cf0a in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153 #2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1 </pre> This means we should probably install debug symbols for libosso.so.1, so we add it and repeat: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1 libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1 root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg libosso1-dbgsym - debug symbols for libosso1 root@maindroid:/etc/apt# apt install libosso1-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libosso1-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 111 kB of archives. After this operation, 137 kB of additional disk space will be used. Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB] Fetched 111 kB in 1s (197 kB/s) Selecting previously unselected package libosso1-dbgsym. (Reading database ... 96903 files and directories currently installed.) Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ... Unpacking libosso1-dbgsym (2.35+2m7) ... Setting up libosso1-dbgsym (2.35+2m7) ... </pre> Try again in gdb: <pre> [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0x10460f44 in ?? () (gdb) bt #0 0x10460f44 in () #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0 </pre> Do the same for libgtk-x11-2.0.so.0, etc. ==== TODO ==== * valgrind * gdb Example debugging location-status bug: 3111eaa535ea023729bfb7d00032319f2a91cd9f Debugging 0 128 996 995 2021-05-05T13:30:57Z Wizzup 4 wikitext text/x-wiki === Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages * Install the -dbg and -dbgsym dependencies of the packages * Attach to the program in gdb (or start it from gdb) ==== Add the debug repositories ==== Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file: <pre> # cat /etc/apt/sources.list.d/debug.list deb http://deb.debian.org/debian-debug/ buster-debug main deb http://deb.debian.org/debian-debug/ buster-backports-debug main deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free </pre> ==== Identify the program that crashes ==== Example: location-status (the location status applet) crashes. Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols: <pre> # dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so # apt-cache search location-status | grep dbg location-status-dbgsym - debug symbols for location-status # apt install location-status-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: location-status-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 27,1 kB of archives. After this operation, 41,0 kB of additional disk space will be used. 0% [Working] Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB] Fetched 27,1 kB in 0s (55,8 kB/s) Selecting previously unselected package location-status-dbgsym. (Reading database ... 96891 files and directories currently installed.) Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ... Unpacking location-status-dbgsym (0.111-1+2m7) ... Setting up location-status-dbgsym (0.111-1+2m7) ... </pre> ==== Install additional debug files ==== To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd: <pre> # ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so </pre> This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg libglib2.0-0-dbgsym - debug symbols for libglib2.0-0 # apt install libglib2.0-0-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libglib2.0-0-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 4240 kB of archives. After this operation, 4984 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB] 0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%] Fetched 4240 kB in 3s (1278 kB/s) Selecting previously unselected package libglib2.0-0-dbgsym:armhf. (Reading database ... 96893 files and directories currently installed.) Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... </pre> We can repeat this process until we get satisfactory backtraces in gdb. For example: <pre> # gdb attach <pid> [...] Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 284 ../../../glib/grefcount.c: No such file or directory. (gdb) bt #0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 #1 0xb660cf0a in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153 #2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1 </pre> This means we should probably install debug symbols for libosso.so.1, so we add it and repeat: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1 libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1 root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg libosso1-dbgsym - debug symbols for libosso1 root@maindroid:/etc/apt# apt install libosso1-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libosso1-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 111 kB of archives. After this operation, 137 kB of additional disk space will be used. Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB] Fetched 111 kB in 1s (197 kB/s) Selecting previously unselected package libosso1-dbgsym. (Reading database ... 96903 files and directories currently installed.) Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ... Unpacking libosso1-dbgsym (2.35+2m7) ... Setting up libosso1-dbgsym (2.35+2m7) ... </pre> Try again in gdb: <pre> [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0x10460f44 in ?? () (gdb) bt #0 0x10460f44 in () #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0 </pre> Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace: <pre> root@maindroid:/etc/apt# gdb attach 8990 GNU gdb (Debian 8.2.1-2+b3) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... attach: No such file or directory. Attaching to process 8990 [New LWP 8991] [New LWP 8992] [New LWP 8993] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 1028 ../../../gobject/gclosure.c: No such file or directory. (gdb) bt #0 0xb66cb768 in g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712 #14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004) at ../../../gobject/gclosure.c:810 #12 0xb66dab7c in signal_emit_unlocked_R (node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068) at ../../../gobject/gsignal.c:3565 #13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604 #20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED (closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84 #17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294) at ../../../gobject/gclosure.c:810 #18 0xb66da2e2 in signal_emit_unlocked_R (node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8) at ../../../gobject/gsignal.c:3673 #19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3401 #21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211 #22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008 #23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503 #24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698 #25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503 #26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425 #27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182 #28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847 #29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920 #30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116 #31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270 #32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch #33 0x004d208a in main () </pre> ==== TODO ==== * valgrind * gdb Example debugging location-status bug: 0ea161dcc95434dc9f8c970596d1cafa8a847c1d 998 996 2021-05-05T18:58:09Z Wizzup 4 wikitext text/x-wiki === Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages * Install the -dbg and -dbgsym dependencies of the packages * Attach to the program in gdb (or start it from gdb) ==== Add the debug repositories ==== Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file: <pre> # cat /etc/apt/sources.list.d/debug.list deb http://deb.debian.org/debian-debug/ buster-debug main deb http://deb.debian.org/debian-debug/ buster-backports-debug main deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free </pre> ==== Identify the program that crashes ==== Example: location-status (the location status applet) crashes. Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols: <pre> # dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so # apt-cache search location-status | grep dbg location-status-dbgsym - debug symbols for location-status # apt install location-status-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: location-status-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 27,1 kB of archives. After this operation, 41,0 kB of additional disk space will be used. 0% [Working] Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB] Fetched 27,1 kB in 0s (55,8 kB/s) Selecting previously unselected package location-status-dbgsym. (Reading database ... 96891 files and directories currently installed.) Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ... Unpacking location-status-dbgsym (0.111-1+2m7) ... Setting up location-status-dbgsym (0.111-1+2m7) ... </pre> ==== Install additional debug files ==== To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd: <pre> # ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so </pre> This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg libglib2.0-0-dbgsym - debug symbols for libglib2.0-0 # apt install libglib2.0-0-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libglib2.0-0-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 4240 kB of archives. After this operation, 4984 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB] 0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%] Fetched 4240 kB in 3s (1278 kB/s) Selecting previously unselected package libglib2.0-0-dbgsym:armhf. (Reading database ... 96893 files and directories currently installed.) Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... </pre> We can repeat this process until we get satisfactory backtraces in gdb. For example: <pre> # gdb attach <pid> [...] Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 284 ../../../glib/grefcount.c: No such file or directory. (gdb) bt #0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 #1 0xb660cf0a in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153 #2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1 </pre> This means we should probably install debug symbols for libosso.so.1, so we add it and repeat: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1 libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1 root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg libosso1-dbgsym - debug symbols for libosso1 root@maindroid:/etc/apt# apt install libosso1-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libosso1-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 111 kB of archives. After this operation, 137 kB of additional disk space will be used. Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB] Fetched 111 kB in 1s (197 kB/s) Selecting previously unselected package libosso1-dbgsym. (Reading database ... 96903 files and directories currently installed.) Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ... Unpacking libosso1-dbgsym (2.35+2m7) ... Setting up libosso1-dbgsym (2.35+2m7) ... </pre> Try again in gdb: <pre> [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0x10460f44 in ?? () (gdb) bt #0 0x10460f44 in () #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0 </pre> Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace: <pre> root@maindroid:/etc/apt# gdb attach 8990 GNU gdb (Debian 8.2.1-2+b3) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... attach: No such file or directory. Attaching to process 8990 [New LWP 8991] [New LWP 8992] [New LWP 8993] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 1028 ../../../gobject/gclosure.c: No such file or directory. (gdb) bt #0 0xb66cb768 in g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712 #14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004) at ../../../gobject/gclosure.c:810 #12 0xb66dab7c in signal_emit_unlocked_R (node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068) at ../../../gobject/gsignal.c:3565 #13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604 #20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED (closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84 #17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294) at ../../../gobject/gclosure.c:810 #18 0xb66da2e2 in signal_emit_unlocked_R (node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8) at ../../../gobject/gsignal.c:3673 #19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3401 #21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211 #22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008 #23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503 #24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698 #25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503 #26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425 #27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182 #28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847 #29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920 #30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116 #31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270 #32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch #33 0x004d208a in main () </pre> === Debugging applications launched via maemo-launcher === When programs are launched via maemo-launcher (many are), like the status area applet, then to debug problems, you can attach with gdb to the running processes. However, it is more likely that you will need to recompile and debug, in which case you should stop the 'service' or program with dsmetool (if required), and invoke the program using maemo-summoner, like so: <pre> gdb --args maemo-summoner hildon-status-menu.launch </pre> ==== TODO ==== * valgrind * gdb Example debugging location-status bug: d0297ffa03c61ce1315f1d213937ec5f1a5123c3 999 998 2021-05-05T19:51:54Z Wizzup 4 /* Debugging applications launched via maemo-launcher */ wikitext text/x-wiki === Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages * Install the -dbg and -dbgsym dependencies of the packages * Attach to the program in gdb (or start it from gdb) ==== Add the debug repositories ==== Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file: <pre> # cat /etc/apt/sources.list.d/debug.list deb http://deb.debian.org/debian-debug/ buster-debug main deb http://deb.debian.org/debian-debug/ buster-backports-debug main deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free </pre> ==== Identify the program that crashes ==== Example: location-status (the location status applet) crashes. Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols: <pre> # dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so # apt-cache search location-status | grep dbg location-status-dbgsym - debug symbols for location-status # apt install location-status-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: location-status-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 27,1 kB of archives. After this operation, 41,0 kB of additional disk space will be used. 0% [Working] Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB] Fetched 27,1 kB in 0s (55,8 kB/s) Selecting previously unselected package location-status-dbgsym. (Reading database ... 96891 files and directories currently installed.) Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ... Unpacking location-status-dbgsym (0.111-1+2m7) ... Setting up location-status-dbgsym (0.111-1+2m7) ... </pre> ==== Install additional debug files ==== To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd: <pre> # ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so </pre> This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg libglib2.0-0-dbgsym - debug symbols for libglib2.0-0 # apt install libglib2.0-0-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libglib2.0-0-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 4240 kB of archives. After this operation, 4984 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB] 0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%] Fetched 4240 kB in 3s (1278 kB/s) Selecting previously unselected package libglib2.0-0-dbgsym:armhf. (Reading database ... 96893 files and directories currently installed.) Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... </pre> We can repeat this process until we get satisfactory backtraces in gdb. For example: <pre> # gdb attach <pid> [...] Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 284 ../../../glib/grefcount.c: No such file or directory. (gdb) bt #0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 #1 0xb660cf0a in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153 #2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1 </pre> This means we should probably install debug symbols for libosso.so.1, so we add it and repeat: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1 libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1 root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg libosso1-dbgsym - debug symbols for libosso1 root@maindroid:/etc/apt# apt install libosso1-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libosso1-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 111 kB of archives. After this operation, 137 kB of additional disk space will be used. Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB] Fetched 111 kB in 1s (197 kB/s) Selecting previously unselected package libosso1-dbgsym. (Reading database ... 96903 files and directories currently installed.) Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ... Unpacking libosso1-dbgsym (2.35+2m7) ... Setting up libosso1-dbgsym (2.35+2m7) ... </pre> Try again in gdb: <pre> [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0x10460f44 in ?? () (gdb) bt #0 0x10460f44 in () #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0 </pre> Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace: <pre> root@maindroid:/etc/apt# gdb attach 8990 GNU gdb (Debian 8.2.1-2+b3) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... attach: No such file or directory. Attaching to process 8990 [New LWP 8991] [New LWP 8992] [New LWP 8993] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 1028 ../../../gobject/gclosure.c: No such file or directory. (gdb) bt #0 0xb66cb768 in g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712 #14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004) at ../../../gobject/gclosure.c:810 #12 0xb66dab7c in signal_emit_unlocked_R (node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068) at ../../../gobject/gsignal.c:3565 #13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604 #20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED (closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84 #17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294) at ../../../gobject/gclosure.c:810 #18 0xb66da2e2 in signal_emit_unlocked_R (node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8) at ../../../gobject/gsignal.c:3673 #19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3401 #21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211 #22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008 #23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503 #24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698 #25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503 #26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425 #27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182 #28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847 #29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920 #30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116 #31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270 #32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch #33 0x004d208a in main () </pre> === Debugging applications launched via maemo-launcher === When programs are launched via maemo-launcher (many are), like the status area applet, then to debug problems, you can attach with gdb to the running processes. However, it is more likely that you will need to recompile and debug, in which case you should stop the 'service' or program with dsmetool (if required), and invoke the program using maemo-summoner, like so: <pre> user@devuan:~$ gdb maemo-summoner [...] (gdb) r hildon-status-menu.launch </pre> ==== TODO ==== * valgrind * gdb Example debugging location-status bug: de0a4f5a51ea7befeda715195934cc03d7f2dbc7 1000 999 2021-05-05T19:55:25Z Wizzup 4 /* Debugging applications launched via maemo-launcher */ wikitext text/x-wiki === Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages * Install the -dbg and -dbgsym dependencies of the packages * Attach to the program in gdb (or start it from gdb) ==== Add the debug repositories ==== Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file: <pre> # cat /etc/apt/sources.list.d/debug.list deb http://deb.debian.org/debian-debug/ buster-debug main deb http://deb.debian.org/debian-debug/ buster-backports-debug main deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free </pre> ==== Identify the program that crashes ==== Example: location-status (the location status applet) crashes. Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols: <pre> # dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so # apt-cache search location-status | grep dbg location-status-dbgsym - debug symbols for location-status # apt install location-status-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: location-status-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 27,1 kB of archives. After this operation, 41,0 kB of additional disk space will be used. 0% [Working] Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB] Fetched 27,1 kB in 0s (55,8 kB/s) Selecting previously unselected package location-status-dbgsym. (Reading database ... 96891 files and directories currently installed.) Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ... Unpacking location-status-dbgsym (0.111-1+2m7) ... Setting up location-status-dbgsym (0.111-1+2m7) ... </pre> ==== Install additional debug files ==== To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd: <pre> # ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so </pre> This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg libglib2.0-0-dbgsym - debug symbols for libglib2.0-0 # apt install libglib2.0-0-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libglib2.0-0-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 4240 kB of archives. After this operation, 4984 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB] 0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%] Fetched 4240 kB in 3s (1278 kB/s) Selecting previously unselected package libglib2.0-0-dbgsym:armhf. (Reading database ... 96893 files and directories currently installed.) Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... </pre> We can repeat this process until we get satisfactory backtraces in gdb. For example: <pre> # gdb attach <pid> [...] Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 284 ../../../glib/grefcount.c: No such file or directory. (gdb) bt #0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 #1 0xb660cf0a in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153 #2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1 </pre> This means we should probably install debug symbols for libosso.so.1, so we add it and repeat: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1 libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1 root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg libosso1-dbgsym - debug symbols for libosso1 root@maindroid:/etc/apt# apt install libosso1-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libosso1-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 111 kB of archives. After this operation, 137 kB of additional disk space will be used. Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB] Fetched 111 kB in 1s (197 kB/s) Selecting previously unselected package libosso1-dbgsym. (Reading database ... 96903 files and directories currently installed.) Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ... Unpacking libosso1-dbgsym (2.35+2m7) ... Setting up libosso1-dbgsym (2.35+2m7) ... </pre> Try again in gdb: <pre> [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0x10460f44 in ?? () (gdb) bt #0 0x10460f44 in () #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0 </pre> Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace: <pre> root@maindroid:/etc/apt# gdb attach 8990 GNU gdb (Debian 8.2.1-2+b3) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... attach: No such file or directory. Attaching to process 8990 [New LWP 8991] [New LWP 8992] [New LWP 8993] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 1028 ../../../gobject/gclosure.c: No such file or directory. (gdb) bt #0 0xb66cb768 in g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712 #14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004) at ../../../gobject/gclosure.c:810 #12 0xb66dab7c in signal_emit_unlocked_R (node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068) at ../../../gobject/gsignal.c:3565 #13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604 #20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED (closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84 #17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294) at ../../../gobject/gclosure.c:810 #18 0xb66da2e2 in signal_emit_unlocked_R (node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8) at ../../../gobject/gsignal.c:3673 #19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3401 #21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211 #22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008 #23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503 #24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698 #25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503 #26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425 #27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182 #28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847 #29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920 #30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116 #31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270 #32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch #33 0x004d208a in main () </pre> === Debugging applications launched via maemo-launcher === When programs are launched via maemo-launcher (many are), like the status area applet, then to debug problems, you can attach with gdb to the running processes. However, it is more likely that you will need to recompile and debug, in which case you should stop the 'service' or program with dsmetool (if required), and invoke the program using maemo-summoner, like so: <pre> user@devuan:~$ gdb maemo-summoner [...] (gdb) r hildon-status-menu.launch </pre> And valgrind: <pre> valgrind maemo-summoner hildon-status-menu.launch </pre> ==== TODO ==== * valgrind * gdb Example debugging location-status bug: 1ce4d33f43865d102f84a760eb7f0539c1ddcba9 Main Page 0 1 997 947 2021-05-05T14:40:29Z Halftux 7 /* Links */ added irclog whitequark wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''freenode''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Getting Started == See [[Getting_Started|Getting Started]] == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/ *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 49a154243b0e7d670ac37be24d67ba4d1090c426 1017 997 2021-05-22T09:00:44Z Parazyd 1 /* Description */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Getting Started == See [[Getting_Started|Getting Started]] == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/ *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> aaf6670e828a65dae7fe463bf91c3bdcb4b866a7 1018 1017 2021-05-22T09:53:22Z Parazyd 1 /* Description */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Getting Started == See [[Getting_Started|Getting Started]] == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Supported Devices == See [[:Category:Device]] == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/ *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 229c12222875e544abbe37567eb072dab5322e8e Localization 0 129 1001 2021-05-07T06:17:34Z Parazyd 1 Created page with "Maemo Leste localization is done with existing packages from Fremantle. The sources are located in one of our GitHub organizations: https://github.com/maemo-leste-translation..." wikitext text/x-wiki Maemo Leste localization is done with existing packages from Fremantle. The sources are located in one of our GitHub organizations: https://github.com/maemo-leste-translations We also have infrastructure integration with Weblate: https://hosted.weblate.org/projects/maemo-leste/ . On Weblate people can contribute translation improvements, or even new languages, and pull requests should automagically be made against our repositories, so maintainers can simply merge it. cb26e73be7f65756506c2232beed04f931767d14 1003 1001 2021-05-07T09:52:21Z Wizzup 4 wikitext text/x-wiki Maemo Leste localization is inherited from the localization work by done Nokia. Many of our current translations therefore come from converting the existing packages from Maemo Fremantle into packages. The source packages for our translations are located in our GitHub translation organizations: https://github.com/maemo-leste-translations There is no documentation on how to contribute a new language yet, but we hope to write that soon. Also, some of the translations are not yet used, as our own software is not complete yet, so when contributed an initial new language it might make sense to focus on the strings that are actively in use. We boost our localisation efforts with Weblate: https://hosted.weblate.org/projects/maemo-leste/ On Weblate people can contribute translation improvements, or even new languages, and pull requests should automatically be made against our repositories, so maintainers can simply merge it. 5ecf36aa94e7bf0e1442252616d78adaab93534c Development 0 61 1002 902 2021-05-07T06:19:22Z Parazyd 1 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap systemd-container && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === Localization === See [[Localization]] === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in e394cec6227cc23ee82763fbc1ef5be5b36f3ec1 Getting Started 0 105 1004 984 2021-05-10T09:18:28Z Parazyd 1 /* Expand the root partition to fill SD card */ wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with cat /proc/partitions Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = Expand the root partition to fill SD card = A helpful script is included to expand the root partition to fill the microSD card. After booting and logging in to root, execute: /etc/expandcard.sh This will expand the root partition to fill the microSD card using resize2fs. = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 790a507813f1e9ad65a4ea85195682bfeabaf261 File:Os-addicts.jpg 6 130 1005 2021-05-11T14:00:57Z Parazyd 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dont-slave.jpg 6 131 1006 2021-05-11T14:01:13Z Parazyd 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Great-war.jpg 6 132 1007 2021-05-11T14:01:23Z Parazyd 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Join-leste.jpg 6 133 1008 2021-05-11T14:01:34Z Parazyd 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Privacy-and-more.png 6 134 1009 2021-05-11T14:01:51Z Parazyd 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Refuse-duopoly.jpg 6 135 1010 2021-05-11T14:02:08Z Parazyd 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Propaganda 0 136 1011 2021-05-11T14:04:39Z Parazyd 1 Created page with "[[File:Os-addicts.jpg|200px]] [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] File:Refuse-duopo..." wikitext text/x-wiki [[File:Os-addicts.jpg|200px]] [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] [[File:Refuse-duopoly.jpg|200px]] c1c058835f1922ae60c1901ee54d790b7ccfea71 Talks 0 99 1012 994 2021-05-17T07:06:30Z Gomezgleonardob 47 Add Flisol Ecuador Talk wikitext text/x-wiki == Flisol Ecuador - 8 May 2021 == ''' Maemo Leste /PostMarketOS''' - ''Leonardo Gomez'' [https://openlab.ec/actividad/flisol-ecuador-2021 Event info] Video [https://www.youtube.com/watch?v=rRJYv7PzRaM YouTube] (via [https://yewtu.be/watch?v=rRJYv7PzRaM invidious]) Slides [https://maemoleste.netlify.app/#/] == installfest.cz - 3rd March 2021 == ''' Rok Linuxového telefonu''' - ''Pavel Machek'' [https://installfest.cz/if21/ Event info] Video [https://www.youtube.com/watch?v=KYmn9-0Tzz8&list=PLub6xBWO8gV-DFBwRbs4xJq4sTGcvEcN0&index=2 YouTube] (via [https://yewtu.be/watch?v=KYmn9-0Tzz8 invidious]) == Bitreichcon 2020 - 2nd May 2020 == '''The state of Maemo Leste''' - ''Ivan Jelincic (parazyd)'' [gopher://bitreich.org/1/con/2020 Event info (gopher)] Slides: [gopher://bitreich.org/0/con/2020/rec/state-of-maemo-leste.md markdown] Audio: [gopher://bitreich.org/9/con/2020/rec/brcon2020-state-of-maemo-leste.ogg OGG] == FOSDEM 2020 - Freedom Main Track - 2nd February 2020 == '''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)'' [https://fosdem.org/2020/schedule/event/smartphones/ Event info] Video: [https://video.fosdem.org/2020/Janson/smartphones.webm WebM/VP9], [https://video.fosdem.org/2020/Janson/smartphones.mp4 MP4] == OpenFest 2019 - 2nd November 2019== '''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)'' [https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info] Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious]) == OpenAlt 2019 - 2nd November 2019 == '''Debian v kapse''' - ''Pavel Machek'' [https://openalt.cz/2019/program_detail.php#event_32 Event info] == Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 == '''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)'' Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious]) == FOSDEM 2019 - Lightning Talk - 2nd February 2019 == '''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)'' [https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info] Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4] [https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides] == OpenFest 2018 - 4th November 2018 == '''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)'' [https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info] Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM] [https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides] == OpenAlt 2018 - 3rd November 2018 == '''Maemo Leste - Debian do kapsy''' - ''Pavel Machek'' [https://openalt.cz/2018/program_detail.php#event_14 Event info] Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious]) [https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides] 72d19ff621b70a008066b150d2419e92c6b1d71c Development/Tasks 0 92 1013 917 2021-05-20T12:06:48Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || || |- | Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || WIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || || |- |} 9e89c5c75f481c35714de2044d2138e8dd17dfcc Status/Audio 0 108 1014 923 2021-05-20T12:58:55Z Wizzup 4 wikitext text/x-wiki == Current status == * We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc. == Development notes == For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc. Unsorted (useful) links: * https://www.systutorials.com/docs/linux/man/1-alsaucm/ * https://github.com/alsa-project/alsa-ucm-conf * https://wiki.postmarketos.org/wiki/Alsa_UCM * https://wiki.archlinux.org/index.php/PulseAudio/Examples * https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio * https://wiki.merproject.org/wiki/Nemo/Audio * (Fremantle/N900-specific) http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA * (Fremantle/N900-specific) https://blog.linuxplumbersconf.org/2009/slides/Jyri-Sarha-audio_miniconf_slides.pdf Some more, not deduplicated with above list: * https://github.com/werman/noise-suppression-for-voice * https://fossies.org/linux/pulseaudio/src/modules/echo-cancel/webrtc.cc * https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-May/028188.html * https://wiki.archlinux.org/title/PulseAudio/Troubleshooting#Audio_quality * https://www.reddit.com/r/linux/comments/2yqfqp/just_found_that_pulseaudio_have_noise/ * https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/196 * https://github.com/werman/noise-suppression-for-voice * https://www.linuxuprising.com/2020/09/how-to-enable-echo-noise-cancellation.html * https://github.com/baresip/baresip/wiki/Using-PulseAudio:-module-echo-cancel * https://blog.linuxplumbersconf.org/2009/slides/Jyri-Sarha-audio_miniconf_slides.pdf * https://git.sailfishos.org/mer-core/pulseaudio-modules-nemo/tree/master/src/music * https://git.sailfishos.org/mer-core/pulseaudio-policy-enforcement * https://github.com/nemomobile/policy-settings-basic * https://github.com/nemomobile/pulseaudio-settings-n900 * https://github.com/nemomobile/pulseaudio-module-cmtspeech-n9xx/commits/master * https://wiki.merproject.org/wiki/Nemo/Audio * http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA * https://github.com/baresip/baresip/wiki/Using-PulseAudio:-module-echo-cancel 6f79b1e7e10c591feec210e1ce7a8d585074b61b Wishlist 0 89 1015 963 2021-05-20T21:24:47Z Wizzup 4 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. 369b66b1e6b5f69be0ed50afb2854f1731c06db8 IRC channel 0 54 1016 967 2021-05-22T09:00:23Z Parazyd 1 wikitext text/x-wiki We are on '''irc.libera.chat''' ; channel '''#maemo-leste''' We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not 'police' the channel, it is also good etiquette to remain on-topic as far as possible. If you use Matrix, then you can connect to the IRC channel via Libera's bridge. Simply join the room '''#libera_#maemo-leste:matrix.org'''. However, please note the following caveats when using the bridge: * Matrix allows a message to have multiple lines (i.e. include returns). This does not look good on IRC clients. Therefore, please refrain from sending multi-line messages * Matrix allows sending media and files within the chat, while IRC does not. On IRC, this will appear as an URL. Please do not send any media or files directly into an IRC room. Use a pastebin, and paste the URL to the item, and include a brief explanation about the link. Otherwise no one might be willing to open it 78df14ef9cb99cf64c5394e60103396e93154d6f Extras/ScummVM 0 137 1019 2021-05-23T09:05:06Z Wizzup 4 Created page with "ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this..." wikitext text/x-wiki ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) The maemo extras repository is here: https://github.com/maemo-leste-extras/scummvm Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo === Status === * Games seems to be playable, with sound and input ==== Tested games ==== * The Neverhood (works) === TODO === * Support more engines * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] f7e9d8d2ce4f5a8b49afd5840d76970900fe4674 1020 1019 2021-05-23T09:07:15Z Wizzup 4 wikitext text/x-wiki ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) The maemo extras repository is here: https://github.com/maemo-leste-extras/scummvm Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo === Status === * Games seems to be playable, with sound and input ==== Tested games ==== * The Neverhood (works) === TODO === * Support more engines * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] 38170765b8ea8c913a01093ab87241534d61993b 1022 1020 2021-05-23T09:08:22Z Wizzup 4 wikitext text/x-wiki ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) The maemo extras repository is here: https://github.com/maemo-leste-extras/scummvm Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo === Status === * Games seems to be playable, with sound and input ==== Tested games ==== * The Neverhood (works) === TODO === * Support more engines * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] 764178881d789f83367000c654b3234308f67e69 1025 1022 2021-05-23T09:15:51Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |status=working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo === Status === * Games seems to be playable, with sound and input ==== Tested games ==== * The Neverhood (works) === TODO === * Support more engines * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] ec677c30a62a624eee04058eca41529d6770c452 1027 1025 2021-05-23T09:18:34Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo === Status === * Games seems to be playable, with sound and input ==== Tested games ==== * The Neverhood (works) === TODO === * Support more engines * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] df29b93fa3544e5bb66752656f971640ced2b525 Category:Extras 14 138 1021 2021-05-23T09:07:53Z Wizzup 4 Created page with "This page contains a list of packages in Maemo Leste Extras with wiki pages" wikitext text/x-wiki This page contains a list of packages in Maemo Leste Extras with wiki pages 93a6b6d379109ec791066848f64564faa7285bf0 Template:Infobox Package 10 139 1023 2021-05-23T09:13:32Z Wizzup 4 Created page with "{{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | c..." wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = In Extras since | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Maemo Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = TBD | label7 = | data7 = | header8 = | label8 = TBD | data8 = {{{TBD|}}} }} ab58387f9f747689c56ac5597d4806b36376ece2 1024 1023 2021-05-23T09:15:45Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Maemo Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = TBD | label7 = | data7 = | header8 = | label8 = TBD | data8 = {{{TBD|}}} }} b570dd41124fbe851779d4bf29142c8d0d417bcf File:ScummVM Logo.png 6 140 1026 2021-05-23T09:17:59Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Nokia N900 0 48 1028 957 2021-05-23T09:29:20Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] c0db5a9236a444f52d2d39fd20addad0eca2c8e0 1031 1028 2021-05-23T09:37:17Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |status_usbnet=Y |status_flashing=Y |status=touch=Y |status_screen=Y |status_wifi=Y |status_x11=Y |status_mainline=Y |status_battery=Y |status_3d=Y |status_accel=? |status_audio=Y |status_bluetooth=? |status_camera=? |status_gps=Y |status_mobiledata=Y |status_calls=? |status_otg=? }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] ade040ace2405cce8b51d77881770db6afb3d993 1032 1031 2021-05-23T09:38:31Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |status_usbnet=Y |status_flashing=Y |status_touch=Y |status_screen=Y |status_wifi=Y |status_x11=Y |status_mainline=Y |status_battery=Y |status_3d=Y |status_accel=? |status_audio=Y |status_bluetooth=? |status_camera=? |status_gps=Y |status_mobiledata=Y |status_calls=? |status_otg=? }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] d2caacb2d727ea75110525e5207547d75641988a 1037 1032 2021-05-23T09:47:55Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Main |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |status_usbnet=Y |status_flashing=Y |status_touch=Y |status_screen=Y |status_wifi=Y |status_x11=Y |status_mainline=Y |status_battery=Y |status_3d=Y |status_accel=? |status_audio=Y |status_bluetooth=? |status_camera=? |status_gps=Y |status_mobiledata=Y |status_calls=? |status_otg=? }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 3c9bc35cfec51526cbe5544c945948746e3eca9f 1042 1037 2021-05-23T09:52:04Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |status_usbnet=Y |status_flashing=Y |status_touch=Y |status_screen=Y |status_wifi=Y |status_x11=Y |status_mainline=Y |status_battery=Y |status_3d=Y |status_accel=? |status_audio=Y |status_bluetooth=? |status_camera=? |status_gps=Y |status_mobiledata=Y |status_calls=? |status_otg=? }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 24eb4addb2b147d203aed7298fb14decc539e4cd Template:Infobox Device 10 45 1029 106 2021-05-23T09:33:06Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = Specifications | label7 = | data7 = | header8 = | label8 = SoC | data8 = {{{soc|}}} | header9 = | label9 = DRAM | data9 = {{{dram|}}} | header10 = | label10 = NAND | data10 = {{{nand|}}} | header11 = | label11 = Power | data11 = {{{power|}}} | header12 = Features | label12 = | data12 = | header13 = | label13 = LCD | data13 = {{{lcd|}}} | header14 = | label14 = Input | data14 = {{{input|}}} | header15 = | label15 = Video | data15 = {{{video|}}} | header16 = | label16 = Audio | data16 = {{{audio|}}} | header17 = | label17 = Network | data17 = {{{network|}}} | header18 = | label18 = Storage | data18 = {{{storage|}}} | header19 = | label19 = USB (<small>Host/OTG</small>) | data19 = {{{usb|}}} | header20 = | label20 = Camera | data20 = {{{camera|}}} | header21 = | label21 = Sensors | data21 = {{{sensors|}}} | header22 = | label22 = Other | data22 = {{{other|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} }} {{Infobox | name=Features | bodystyle= | title = Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} 39f170c0ce82dc5e7155632910e480c541757b09 1033 1029 2021-05-23T09:43:46Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category}}} }} {{Infobox | name=Features | bodystyle= | title = Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} d8f156f7f1038f36672d6671f7e8a86dcfffdab7 1034 1033 2021-05-23T09:44:19Z Wizzup 4 Reverted edits by [[Special:Contributions/Wizzup|Wizzup]] ([[User talk:Wizzup|talk]]) to last revision by [[User:Swabbles|Swabbles]] wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = Specifications | label7 = | data7 = | header8 = | label8 = SoC | data8 = {{{soc|}}} | header9 = | label9 = DRAM | data9 = {{{dram|}}} | header10 = | label10 = NAND | data10 = {{{nand|}}} | header11 = | label11 = Power | data11 = {{{power|}}} | header12 = Features | label12 = | data12 = | header13 = | label13 = LCD | data13 = {{{lcd|}}} | header14 = | label14 = Input | data14 = {{{input|}}} | header15 = | label15 = Video | data15 = {{{video|}}} | header16 = | label16 = Audio | data16 = {{{audio|}}} | header17 = | label17 = Network | data17 = {{{network|}}} | header18 = | label18 = Storage | data18 = {{{storage|}}} | header19 = | label19 = USB (<small>Host/OTG</small>) | data19 = {{{usb|}}} | header20 = | label20 = Camera | data20 = {{{camera|}}} | header21 = | label21 = Sensors | data21 = {{{sensors|}}} | header22 = | label22 = Other | data22 = {{{other|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} }} 993003e5ee469a6119c5d643d599b7028809c79e 1035 1034 2021-05-23T09:47:01Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = Specifications | label7 = | data7 = | header8 = | label8 = SoC | data8 = {{{soc|}}} | header9 = | label9 = DRAM | data9 = {{{dram|}}} | header10 = | label10 = NAND | data10 = {{{nand|}}} | header11 = | label11 = Power | data11 = {{{power|}}} | header12 = Hardware Features | label12 = | data12 = | header13 = | label13 = LCD | data13 = {{{lcd|}}} | header14 = | label14 = Input | data14 = {{{input|}}} | header15 = | label15 = Video | data15 = {{{video|}}} | header16 = | label16 = Audio | data16 = {{{audio|}}} | header17 = | label17 = Network | data17 = {{{network|}}} | header18 = | label18 = Storage | data18 = {{{storage|}}} | header19 = | label19 = USB (<small>Host/OTG</small>) | data19 = {{{usb|}}} | header20 = | label20 = Camera | data20 = {{{camera|}}} | header21 = | label21 = Sensors | data21 = {{{sensors|}}} | header22 = | label22 = Other | data22 = {{{other|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} }} {{Infobox | name=Features | bodystyle= | title = Software Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} df4ae0a993794da5dc3a6249aa4326a3d8c29ed8 1036 1035 2021-05-23T09:47:52Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header_category = | label_category = Website | data_category = {{{category|}}} | header7 = Specifications | label7 = | data7 = | header8 = | label8 = SoC | data8 = {{{soc|}}} | header9 = | label9 = DRAM | data9 = {{{dram|}}} | header10 = | label10 = NAND | data10 = {{{nand|}}} | header11 = | label11 = Power | data11 = {{{power|}}} | header12 = Hardware Features | label12 = | data12 = | header13 = | label13 = LCD | data13 = {{{lcd|}}} | header14 = | label14 = Input | data14 = {{{input|}}} | header15 = | label15 = Video | data15 = {{{video|}}} | header16 = | label16 = Audio | data16 = {{{audio|}}} | header17 = | label17 = Network | data17 = {{{network|}}} | header18 = | label18 = Storage | data18 = {{{storage|}}} | header19 = | label19 = USB (<small>Host/OTG</small>) | data19 = {{{usb|}}} | header20 = | label20 = Camera | data20 = {{{camera|}}} | header21 = | label21 = Sensors | data21 = {{{sensors|}}} | header22 = | label22 = Other | data22 = {{{other|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} }} {{Infobox | name=Features | bodystyle= | title = Software Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} 410b816e2d72fcf041a445d53edbd141dbb72364 1038 1036 2021-05-23T09:48:37Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header_category = | label_category = Category | data_category = {{{category|}}} | header7 = Specifications | label7 = | data7 = | header8 = | label8 = SoC | data8 = {{{soc|}}} | header9 = | label9 = DRAM | data9 = {{{dram|}}} | header10 = | label10 = NAND | data10 = {{{nand|}}} | header11 = | label11 = Power | data11 = {{{power|}}} | header12 = Hardware Features | label12 = | data12 = | header13 = | label13 = LCD | data13 = {{{lcd|}}} | header14 = | label14 = Input | data14 = {{{input|}}} | header15 = | label15 = Video | data15 = {{{video|}}} | header16 = | label16 = Audio | data16 = {{{audio|}}} | header17 = | label17 = Network | data17 = {{{network|}}} | header18 = | label18 = Storage | data18 = {{{storage|}}} | header19 = | label19 = USB (<small>Host/OTG</small>) | data19 = {{{usb|}}} | header20 = | label20 = Camera | data20 = {{{camera|}}} | header21 = | label21 = Sensors | data21 = {{{sensors|}}} | header22 = | label22 = Other | data22 = {{{other|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} }} {{Infobox | name=Features | bodystyle= | title = Software Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} 3cd3ea876967ed48c0e31850e74d75fca7f1f598 1039 1038 2021-05-23T09:49:09Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | heade24 = | label24 = Category | dat24 = {{{category|}}} | header7 = Specifications | label7 = | data7 = | header8 = | label8 = SoC | data8 = {{{soc|}}} | header9 = | label9 = DRAM | data9 = {{{dram|}}} | header10 = | label10 = NAND | data10 = {{{nand|}}} | header11 = | label11 = Power | data11 = {{{power|}}} | header12 = Hardware Features | label12 = | data12 = | header13 = | label13 = LCD | data13 = {{{lcd|}}} | header14 = | label14 = Input | data14 = {{{input|}}} | header15 = | label15 = Video | data15 = {{{video|}}} | header16 = | label16 = Audio | data16 = {{{audio|}}} | header17 = | label17 = Network | data17 = {{{network|}}} | header18 = | label18 = Storage | data18 = {{{storage|}}} | header19 = | label19 = USB (<small>Host/OTG</small>) | data19 = {{{usb|}}} | header20 = | label20 = Camera | data20 = {{{camera|}}} | header21 = | label21 = Sensors | data21 = {{{sensors|}}} | header22 = | label22 = Other | data22 = {{{other|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} }} {{Infobox | name=Features | bodystyle= | title = Software Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} d95b31b0df30441b8f856c3bc32567bf85362851 1040 1039 2021-05-23T09:50:03Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | heade24 = | label24 = Category | data24 = {{{category|}}} | header7 = Specifications | label7 = | data7 = | header8 = | label8 = SoC | data8 = {{{soc|}}} | header9 = | label9 = DRAM | data9 = {{{dram|}}} | header10 = | label10 = NAND | data10 = {{{nand|}}} | header11 = | label11 = Power | data11 = {{{power|}}} | header12 = Hardware Features | label12 = | data12 = | header13 = | label13 = LCD | data13 = {{{lcd|}}} | header14 = | label14 = Input | data14 = {{{input|}}} | header15 = | label15 = Video | data15 = {{{video|}}} | header16 = | label16 = Audio | data16 = {{{audio|}}} | header17 = | label17 = Network | data17 = {{{network|}}} | header18 = | label18 = Storage | data18 = {{{storage|}}} | header19 = | label19 = USB (<small>Host/OTG</small>) | data19 = {{{usb|}}} | header20 = | label20 = Camera | data20 = {{{camera|}}} | header21 = | label21 = Sensors | data21 = {{{sensors|}}} | header22 = | label22 = Other | data22 = {{{other|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} }} {{Infobox | name=Features | bodystyle= | title = Software Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} e21833c2135e1f9e2ac674cbd0a1c3db5318c671 1041 1040 2021-05-23T09:51:28Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = Other | data23 = {{{other|}}} | header24 = | label24 = External Headers | data24 = {{{headers|}}} }} {{Infobox | name=Features | bodystyle= | title = Software Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} 19b07419d646aa0076909de99a4727d9179b5e86 1045 1041 2021-05-23T11:04:15Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = Other | data23 = {{{other|}}} | header24 = | label24 = External Headers | data24 = {{{headers|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{kernel|}}} }} {{Infobox | name=Features | bodystyle= | title = Software Features | titlestyle = |label1 = USB Networking |data1 = {{Feature|{{{status_usbnet|}}}}} |header2 = |label2 = Flashing |data2 = {{Feature|{{{status_flashing|}}}}} |header3 = |label3 = Touchscreen |data3 = {{Feature|{{{status_touch|}}}}} |header4 = |label4 = Display |data4 = {{Feature|{{{status_screen|}}}}} |header5 = |label5 = WiFi |data5 = {{Feature|{{{status_wifi|}}}}} |header6 = |label6 = X11 |data6 = {{Feature|{{{status_x11|}}}}} |header7 = |label7 = FDE |data7 = {{Feature|{{{status_fde|}}}}} |header8 = |label8 = Mainline |data8 = {{Feature|{{{status_mainline|}}}}} |header9 = |label9 = Battery |data9 = {{Feature|{{{status_battery|}}}}} |header10 = |label10 = 3D Acceleration |data10 = {{Feature|{{{status_3d|}}}}} |header11 = |label11 = Accelerometer |data11 = {{Feature|{{{status_accel|}}}}} |header12 = |label12 = Audio |data12 = {{Feature|{{{status_audio|}}}}} |header13 = |label13 = Bluetooth |data13 = {{Feature|{{{status_bluetooth|}}}}} |header14 = |label14 = Camera |data14 = {{Feature|{{{status_camera|}}}}} |header15 = |label15 = GPS |data15 = {{Feature|{{{status_gps|}}}}} |header16 = |label16 = Mobile data |data16 = {{Feature|{{{status_mobiledata|}}}}} |header17 = |label17 = SMS |data17 = {{Feature|{{{status_sms|}}}}} |header18 = |label18 = Calls |data18 = {{Feature|{{{status_calls|}}}}} |header19 = |label19 = USB OTG |data19 = {{Feature|{{{status_otg|}}}}} |header20 = |label20 = NFC |data20 = {{Feature|{{{status_nfc|}}}}} }} 4d54b4fcd3f4820394b00abef87534bd33dce743 Template:Feature 10 141 1030 2021-05-23T09:33:39Z Wizzup 4 Created page with "{{#ifeq:{{{1|}}}|P| <div class="feature feature-partial">Partial</div> | {{#ifeq:{{{1|}}}|Y| <div class="feature feature-yes">Works</div> | {{#ifeq:{{{1|}}}|N| <div class="fea..." wikitext text/x-wiki {{#ifeq:{{{1|}}}|P| <div class="feature feature-partial">Partial</div> | {{#ifeq:{{{1|}}}|Y| <div class="feature feature-yes">Works</div> | {{#ifeq:{{{1|}}}|N| <div class="feature feature-no">Broken</div> | {{#ifeq:{{{1|}}}|-| <div class="feature feature-unavailable">Unavailable</div> | <div></div> }} }} }} }} 414f94d635ddc207447e5c0eeef0daa1e0ae9c78 Motorola Droid Bionic 0 111 1043 992 2021-05-23T10:03:00Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Micro USB || Yes || OTG and USB network |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 3219970376ceaa310a89c84b30e51b2bb5c39e1f 1044 1043 2021-05-23T10:10:32Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Micro USB || Yes || OTG and USB network |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 9c895caeb7c217642005155a636159cd07912e09 Motorola Droid Bionic 0 111 1046 1044 2021-05-23T11:10:01Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || OTG and USB network |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 1d5cd923664a96391fb3816160404e4bea66f052 1048 1046 2021-05-23T11:10:30Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] 98ebe54576ea308bed9f04c8339f7c736b10693f 1073 1048 2021-05-23T11:59:59Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |sw_kernel=5.10.4 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes (load ak8975 module), no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> [[Category:Device]] f5043262bf3d237399d12a97f99ec77043a4027e 1074 1073 2021-05-23T12:00:46Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |sw_kernel=5.10.4 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes (load ak8975 module), no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] 10b933b33a88e5d837d7e0d468fd52aef5adffd2 1075 1074 2021-05-23T12:07:06Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |sw_kernel=5.10.4 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] 5187320f14e489aa3cf6f83524a7c8e6af52339c Template:Infobox Device 10 45 1047 1045 2021-05-23T11:10:20Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = Other | data23 = {{{other|}}} | header24 = | label24 = External Headers | data24 = {{{headers|}}} | header25 = | label25 = Battery Capacity | data25 = {{{battery|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{sw_kernel|}}} | header27 = | label27 = Serial | data27 = {{{sw_serial|}}} | header27 = | label27 = Charging | data27 = {{{sw_charging|}}} | header28 = | label28 = USB | data28 = {{{sw_usb|}}} | header29 = | label29 = Touchscreen | data29 = {{{sw_touchscreen|}}} }} [[Category:Devices]] 688581e7df0d9eb64da3f415c16972697122663e 1051 1047 2021-05-23T11:17:02Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = Other | data23 = {{{other|}}} | header24 = | label24 = External Headers | data24 = {{{headers|}}} | header25 = | label25 = Battery Capacity | data25 = {{{battery|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{sw_kernel|}}} | header27 = | label27 = Serial | data27 = {{{sw_serial|}}} | header27 = | label27 = Charging | data27 = {{{sw_charging|}}} | header28 = | label28 = USB Slave | data28 = {{{sw_usb_slave|}}} | header29 = | label29 = USB Host | data29 = {{{sw_usb_host|}}} | header30 = | label30 = Touchscreen | data30 = {{{sw_touchscreen|}}} | header31 = | label31 = Keyboard | data31 = {{{sw_keyboard|}}} | header32 = | label32 = Screen | data32 = {{{sw_screen|}}} | header33 = | label33 = HDMI-out | data33 = {{{sw_hdmi|}}} }} [[Category:Devices]] 9e000c87030ae7699523788e66f9ecd426bb87c9 1052 1051 2021-05-23T11:18:57Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = Other | data23 = {{{other|}}} | header24 = | label24 = External Headers | data24 = {{{headers|}}} | header25 = | label25 = Battery Capacity | data25 = {{{battery|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{sw_kernel|}}} | header27 = | label27 = Serial | data27 = {{{sw_serial|}}} | header27 = | label27 = Charging | data27 = {{{sw_charging|}}} | header28 = | label28 = USB Slave | data28 = {{{sw_usb_slave|}}} | header29 = | label29 = USB Host | data29 = {{{sw_usb_host|}}} | header30 = | label30 = Touchscreen | data30 = {{{sw_touchscreen|}}} | header31 = | label31 = Keyboard | data31 = {{{sw_keyboard|}}} | header32 = | label32 = Screen | data32 = {{{sw_screen|}}} | header33 = | label33 = HDMI-out | data33 = {{{sw_hdmi|}}} | header34 = | label34 = TV-out | data34 = {{{sw_tv|}}} | header35 = | label35 = 3D acceleration | data35 = {{{sw_3daccel|}}} }} [[Category:Devices]] 201555de9b57eb834725d8d59eb729d8970ea2cd 1055 1052 2021-05-23T11:21:04Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = Other | data23 = {{{other|}}} | header24 = | label24 = External Headers | data24 = {{{headers|}}} | header25 = | label25 = Battery Capacity | data25 = {{{battery|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{sw_kernel|}}} | header27 = | label27 = Serial | data27 = {{{sw_serial|}}} | header27 = | label27 = Charging | data27 = {{{sw_charging|}}} | header28 = | label28 = USB Slave | data28 = {{{sw_usb_slave|}}} | header29 = | label29 = USB Host | data29 = {{{sw_usb_host|}}} | header30 = | label30 = Touchscreen | data30 = {{{sw_touchscreen|}}} | header31 = | label31 = Keyboard | data31 = {{{sw_keyboard|}}} | header32 = | label32 = Screen | data32 = {{{sw_screen|}}} | header33 = | label33 = HDMI-out | data33 = {{{sw_hdmi|}}} | header34 = | label34 = TV-out | data34 = {{{sw_tv|}}} | header35 = | label35 = 3D acceleration | data35 = {{{sw_3daccel|}}} | header36 = | label36 = Vibration motor | data36 = {{{sw_vibration|}}} | header37 = | label37 = Audio | data37 = {{{sw_audio|}}} | header38 = | label38 = Phone calls | data38 = {{{sw_calls|}}} | header39 = | label39 = SMS | data39 = {{{sw_sms|}}} | header40 = | label40 = Wifi | data40 = {{{sw_wifi|}}} }} [[Category:Devices]] 699388e49b19e09f213881e9ca3e45d10c4b1229 1057 1055 2021-05-23T11:26:28Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = Other | data23 = {{{other|}}} | header24 = | label24 = External Headers | data24 = {{{headers|}}} | header25 = | label25 = Battery Capacity | data25 = {{{battery|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{sw_kernel|}}} | header27 = | label27 = Serial | data27 = {{{sw_serial|}}} | header27 = | label27 = Charging | data27 = {{{sw_charging|}}} | header28 = | label28 = USB Slave | data28 = {{{sw_usb_slave|}}} | header29 = | label29 = USB Host | data29 = {{{sw_usb_host|}}} | header30 = | label30 = Touchscreen | data30 = {{{sw_touchscreen|}}} | header31 = | label31 = Keyboard | data31 = {{{sw_keyboard|}}} | header32 = | label32 = Screen | data32 = {{{sw_screen|}}} | header33 = | label33 = HDMI-out | data33 = {{{sw_hdmi|}}} | header34 = | label34 = TV-out | data34 = {{{sw_tv|}}} | header35 = | label35 = 3D acceleration | data35 = {{{sw_3daccel|}}} | header36 = | label36 = Vibration motor | data36 = {{{sw_vibration|}}} | header37 = | label37 = Audio | data37 = {{{sw_audio|}}} | header38 = | label38 = Phone calls | data38 = {{{sw_calls|}}} | header39 = | label39 = SMS | data39 = {{{sw_sms|}}} | header40 = | label40 = Wifi | data40 = {{{sw_wifi|}}} | header41 = | label41 = Ethernet | data41 = {{{sw_ethernet|}}} | header42 = | label42 = IrDA | data42 = {{{sw_irda|}}} | header43 = | label43 = 2G/3G data | data43 = {{{sw_2g3gdata|}}} | header44 = | label44 = 4G data | data44 = {{{sw_4gdata|}}} | header45 = | label45 = Bluetooth | data45 = {{{sw_bluetooth|}}} | header46 = | label46 = FM transmitter | data46 = {{{sw_fmtx|}}} | header47 = | label47 = FM receiver | data47 = {{{sw_fmrx|}}} | header48 = | label48 = NFC | data48 = {{{sw_nfc|}}} | header49 = | label49 = Accelerometer | data49 = {{{sw_accelerometer|}}} }} [[Category:Devices]] cc4d168ccdd90a9e56f6cf28a5083f82a2a53404 1059 1057 2021-05-23T11:32:09Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = Other | data23 = {{{other|}}} | header24 = | label24 = External Headers | data24 = {{{headers|}}} | header25 = | label25 = Battery Capacity | data25 = {{{battery|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{sw_kernel|}}} | header27 = | label27 = Serial | data27 = {{{sw_serial|}}} | header27 = | label27 = Charging | data27 = {{{sw_charging|}}} | header28 = | label28 = USB Slave | data28 = {{{sw_usb_slave|}}} | header29 = | label29 = USB Host | data29 = {{{sw_usb_host|}}} | header30 = | label30 = Touchscreen | data30 = {{{sw_touchscreen|}}} | header31 = | label31 = Keyboard | data31 = {{{sw_keyboard|}}} | header32 = | label32 = Screen | data32 = {{{sw_screen|}}} | header33 = | label33 = HDMI-out | data33 = {{{sw_hdmi|}}} | header34 = | label34 = TV-out | data34 = {{{sw_tv|}}} | header35 = | label35 = 3D acceleration | data35 = {{{sw_3daccel|}}} | header36 = | label36 = Vibration motor | data36 = {{{sw_vibration|}}} | header37 = | label37 = Audio | data37 = {{{sw_audio|}}} | header38 = | label38 = Phone calls | data38 = {{{sw_calls|}}} | header39 = | label39 = SMS | data39 = {{{sw_sms|}}} | header40 = | label40 = Wifi | data40 = {{{sw_wifi|}}} | header41 = | label41 = Ethernet | data41 = {{{sw_ethernet|}}} | header42 = | label42 = IrDA | data42 = {{{sw_irda|}}} | header43 = | label43 = 2G/3G data | data43 = {{{sw_2g3gdata|}}} | header44 = | label44 = 4G data | data44 = {{{sw_4gdata|}}} | header45 = | label45 = Bluetooth | data45 = {{{sw_bluetooth|}}} | header46 = | label46 = FM transmitter | data46 = {{{sw_fmtx|}}} | header47 = | label47 = FM receiver | data47 = {{{sw_fmrx|}}} | header48 = | label48 = NFC | data48 = {{{sw_nfc|}}} | header49 = | label49 = Accelerometer | data49 = {{{sw_accelerometer|}}} | header50 = | label50 = Compass | data50 = {{{sw_compass|}}} | header51 = | label51 = Gryo | data51 = {{{sw_gyro|}}} | header52 = | label52 = Proximity Sensor | data52 = {{{sw_proximity|}}} | header53 = | label53 = Ambient Light Sensor | data53 = {{{sw_als|}}} | header54 = | label54 = GPS | data54 = {{{sw_gps|}}} | header55 = | label55 = A-GPS | data55 = {{{sw_agps|}}} | header56 = | label56 = Front Camera | data56 = {{{sw_frontcam|}}} | header57 = | label57 = Back Camera(s) | data57 = {{{sw_backcam|}}} | header58 = | label58 = Idle Power Consumption | data58 = {{{sw_idlepower|}}} | header59 = | label59 = Stand by time | data59 = {{{sw_standbytime|}}} }} [[Category:Devices]] 3ca72492a467c274f7eb56e0eb68c62094252d33 1063 1059 2021-05-23T11:37:49Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} | header24 = | label24 = Battery Capacity | data24 = {{{battery|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{sw_kernel|}}} | header27 = | label27 = Serial | data27 = {{{sw_serial|}}} | header27 = | label27 = Charging | data27 = {{{sw_charging|}}} | header28 = | label28 = USB Slave | data28 = {{{sw_usb_slave|}}} | header29 = | label29 = USB Host | data29 = {{{sw_usb_host|}}} | header30 = | label30 = Touchscreen | data30 = {{{sw_touchscreen|}}} | header31 = | label31 = Keyboard | data31 = {{{sw_keyboard|}}} | header32 = | label32 = Screen | data32 = {{{sw_screen|}}} | header33 = | label33 = HDMI-out | data33 = {{{sw_hdmi|}}} | header34 = | label34 = TV-out | data34 = {{{sw_tv|}}} | header35 = | label35 = 3D acceleration | data35 = {{{sw_3daccel|}}} | header36 = | label36 = Vibration motor | data36 = {{{sw_vibration|}}} | header37 = | label37 = Audio | data37 = {{{sw_audio|}}} | header38 = | label38 = Phone calls | data38 = {{{sw_calls|}}} | header39 = | label39 = SMS | data39 = {{{sw_sms|}}} | header40 = | label40 = Wifi | data40 = {{{sw_wifi|}}} | header41 = | label41 = Ethernet | data41 = {{{sw_ethernet|}}} | header42 = | label42 = IrDA | data42 = {{{sw_irda|}}} | header43 = | label43 = 2G/3G data | data43 = {{{sw_2g3gdata|}}} | header44 = | label44 = 4G data | data44 = {{{sw_4gdata|}}} | header45 = | label45 = Bluetooth | data45 = {{{sw_bluetooth|}}} | header46 = | label46 = FM transmitter | data46 = {{{sw_fmtx|}}} | header47 = | label47 = FM receiver | data47 = {{{sw_fmrx|}}} | header48 = | label48 = NFC | data48 = {{{sw_nfc|}}} | header49 = | label49 = Accelerometer | data49 = {{{sw_accelerometer|}}} | header50 = | label50 = Compass | data50 = {{{sw_compass|}}} | header51 = | label51 = Gryo | data51 = {{{sw_gyro|}}} | header52 = | label52 = Proximity Sensor | data52 = {{{sw_proximity|}}} | header53 = | label53 = Ambient Light Sensor | data53 = {{{sw_als|}}} | header54 = | label54 = GPS | data54 = {{{sw_gps|}}} | header55 = | label55 = A-GPS | data55 = {{{sw_agps|}}} | header56 = | label56 = Front Camera | data56 = {{{sw_frontcam|}}} | header57 = | label57 = Back Camera(s) | data57 = {{{sw_backcam|}}} | header58 = | label58 = Idle Power Consumption | data58 = {{{sw_idlepower|}}} | header59 = | label59 = Stand by time | data59 = {{{sw_standbytime|}}} }} [[Category:Devices]] a863b217e8968f225001bfbe00c4ea6de0fce65c 1064 1063 2021-05-23T11:39:03Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Manufacturer | data2 = {{{manufacturer|}}} | header3 = | label3 = Codename | data3 = {{{codename|}}} | header4 = | label4 = Dimensions | data4 = {{{dimensions|}}} | header5 = | label5 = Release Date | data5 = {{{release_date|}}} | header6 = | label6 = Website | data6 = {{{website|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = Specifications | label8 = | data8 = | header9 = | label9 = SoC | data9 = {{{soc|}}} | header10 = | label10 = DRAM | data10 = {{{dram|}}} | header11 = | label11 = NAND | data11 = {{{nand|}}} | header12 = | label12 = Power | data12 = {{{power|}}} | header13 = Hardware Features | label13 = | data13 = | header14 = | label14 = LCD | data14 = {{{lcd|}}} | header15 = | label15 = Input | data15 = {{{input|}}} | header16 = | label16 = Video | data16 = {{{video|}}} | header17 = | label17 = Audio | data17 = {{{audio|}}} | header18 = | label18 = Network | data18 = {{{network|}}} | header19 = | label19 = Storage | data19 = {{{storage|}}} | header20 = | label20 = USB (<small>Host/OTG</small>) | data20 = {{{usb|}}} | header21 = | label21 = Camera | data21 = {{{camera|}}} | header22 = | label22 = Sensors | data22 = {{{sensors|}}} | header23 = | label23 = External Headers | data23 = {{{headers|}}} | header24 = | label24 = Battery Capacity | data24 = {{{battery|}}} | header25 = Software Features | label25 = | data25 = | header26 = | label26 = Kernel | data26 = {{{sw_kernel|}}} | header27 = | label27 = Serial | data27 = {{{sw_serial|}}} | header28 = | label28 = Charging | data28 = {{{sw_charging|}}} | header29 = | label29 = USB Slave | data29 = {{{sw_usb_slave|}}} | header30 = | label30 = USB Host | data30 = {{{sw_usb_host|}}} | header31 = | label31 = Touchscreen | data31 = {{{sw_touchscreen|}}} | header32 = | label32 = Keyboard | data32 = {{{sw_keyboard|}}} | header33 = | label33 = Screen | data33 = {{{sw_screen|}}} | header34 = | label34 = HDMI-out | data34 = {{{sw_hdmi|}}} | header35 = | label35 = TV-out | data35 = {{{sw_tv|}}} | header36 = | label36 = 3D acceleration | data36 = {{{sw_3daccel|}}} | header37 = | label37 = Vibration motor | data37 = {{{sw_vibration|}}} | header38 = | label38 = Audio | data38 = {{{sw_audio|}}} | header39 = | label39 = Phone calls | data39 = {{{sw_calls|}}} | header40 = | label40 = SMS | data40 = {{{sw_sms|}}} | header41 = | label41 = Wifi | data41 = {{{sw_wifi|}}} | header42 = | label42 = Ethernet | data42 = {{{sw_ethernet|}}} | header43 = | label43 = IrDA | data43 = {{{sw_irda|}}} | header44 = | label44 = 2G/3G data | data44 = {{{sw_2g3gdata|}}} | header45 = | label45 = 4G data | data45 = {{{sw_4gdata|}}} | header46 = | label46 = Bluetooth | data46 = {{{sw_bluetooth|}}} | header47 = | label47 = FM transmitter | data47 = {{{sw_fmtx|}}} | header48 = | label48 = FM receiver | data48 = {{{sw_fmrx|}}} | header49 = | label49 = NFC | data49 = {{{sw_nfc|}}} | header50 = | label50 = Accelerometer | data50 = {{{sw_accelerometer|}}} | header51 = | label51 = Compass | data51 = {{{sw_compass|}}} | header52 = | label52 = Gryo | data52 = {{{sw_gyro|}}} | header53 = | label53 = Proximity Sensor | data53 = {{{sw_proximity|}}} | header54 = | label54 = Ambient Light Sensor | data54 = {{{sw_als|}}} | header55 = | label55 = GPS | data55 = {{{sw_gps|}}} | header56 = | label56 = A-GPS | data56 = {{{sw_agps|}}} | header57 = | label57 = Front Camera | data57 = {{{sw_frontcam|}}} | header58 = | label58 = Back Camera(s) | data58 = {{{sw_backcam|}}} | header59 = | label59 = Idle Power Consumption | data59 = {{{sw_idlepower|}}} | header60 = | label60 = Stand by time | data60 = {{{sw_standbytime|}}} }} [[Category:Devices]] 2c9fa64f2a8e2746ca4f1f8c84394a9f2741a4d0 Nokia N900 0 48 1049 1042 2021-05-23T11:11:57Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb=gadgets only |sw_touchscreen=yes }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 1a4a5206d3fb0ff73baeabcbac0a37f7cc144946 1050 1049 2021-05-23T11:12:47Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb=gadgets only |sw_touchscreen=Yes }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] efb4ccd27d0cc0b024502e3972e625c4e73c4980 1053 1050 2021-05-23T11:19:04Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] bab82ce2be95761a812693df31924caf3ac4d35f 1054 1053 2021-05-23T11:19:18Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] aa57ee8604e6a845fe66899e19088ba42df2b877 1056 1054 2021-05-23T11:22:35Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 378dd598dc1a1357a9a3c63256419fd28437e5fa 1058 1056 2021-05-23T11:28:08Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] ad05b5e050ae6a0799a6ecb9172a0f8494102550 1060 1058 2021-05-23T11:34:25Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower= |sw_standbytime= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 4457f71d33c899635ca9c19b4c76604a7192efec 1061 1060 2021-05-23T11:35:48Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=150mW (needs kernel work) |sw_standbytime= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 02f374f1443e7ced084284bb76cec02e9528748b 1062 1061 2021-05-23T11:36:07Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle [[Category:Device]] 8813439cfa1b67bbcb72c378e83c349e49c90d49 1065 1062 2021-05-23T11:39:22Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === U-Boot setup === ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ==== 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing Fremantle ==== 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 18733f28848dc5993292aa40bac7601ad44f8707 1066 1065 2021-05-23T11:47:54Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] ce4735af0a3340c4595b2b1394bc8ad97134028d 1067 1066 2021-05-23T11:48:28Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh == Device == === Serial === http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 873aac20696070d3df37d584ef8bc0e51cb6d6db 1068 1067 2021-05-23T11:48:42Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted: * assumption: /dev/sda2 is Leste root partition * e2fsck -f /dev/sda2 * use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size * resize2fs -p /dev/sda2 * e2fsck -f /dev/sda2 The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] dd840a1f14a7e3ab9729ff28725b243afaee2729 1069 1068 2021-05-23T11:50:25Z Wizzup 4 /* Increase filesystem size */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b''' This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''. To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''': '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f''' ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 3633786ff4488fa08e21218183a8edd6e29ce21d 1070 1069 2021-05-23T11:52:47Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613 === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 901297791184fad841a813a791c7e45bf851a37f 1071 1070 2021-05-23T11:54:05Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] a5f2013b20c031e1605f52d3a74b59ba26cb5ef4 1072 1071 2021-05-23T11:55:33Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 0f047191d5f7c31560896d83d7c5e8b214f16d62 1076 1072 2021-05-23T12:08:38Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc=No, needs kernel work |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 1f671857ce06f9dd443737539bea1f7713e6a277 1077 1076 2021-05-23T12:20:43Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery= |sw_kernel=5.1 |sw_serial=Yes,special hardware |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4g= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing fremantle ==== If you have an existing Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 0f047191d5f7c31560896d83d7c5e8b214f16d62 1078 1077 2021-05-23T12:51:06Z Sicelo 5 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=TX only |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 0f5fdfdf07e1cc7691f5b06368ad96ca99566ca9 1082 1078 2021-05-23T13:00:58Z Sicelo 5 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/ 2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 6b0379ecc1e0b03ce076a05babb6a176c5f324e1 File:ScummVMNeverhood.png 6 142 1079 2021-05-23T12:53:07Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/ScummVM 0 137 1080 1027 2021-05-23T12:54:04Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input === Tested games === ===== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] === TODO === * Support more engines * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] e9a6ee1198369a2a1de018d1e36c096309a3db93 1081 1080 2021-05-23T12:59:07Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input === Tested games === ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] === TODO === * Support more engines * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] c172b6f406df1ead63f62d827df190454ee8f8fb 1083 1081 2021-05-23T13:09:41Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input === Tested games === ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] === TODO === * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] 83a1634fe966882ff3f90583acbe21e159db489a 1084 1083 2021-05-23T13:09:54Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input === Tested games === ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] a7f8ef0fb5cefa78d7befcf990eecb3198fd9d0d 1085 1084 2021-05-23T13:10:02Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input === Tested games === ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] fac90d68f119f5d7799ec42e4831839ddac762ac 1092 1085 2021-05-23T13:40:57Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm |packager=[[User:Wizzup]] }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input === Tested games === ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] a345c0c150cf6fca72da671109b48938b17fe362 1094 1092 2021-05-23T13:41:20Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm |category=Games |packager=[[User:Wizzup]] }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input === Tested games === ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] 8782a1f0f00ece57a928b711f8161d08b99a5ff6 File:MaepDroid4.png 6 143 1086 2021-05-23T13:13:33Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MaepLogo256.png 6 144 1087 2021-05-23T13:37:08Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/maep 0 145 1088 2021-05-23T13:38:28Z Wizzup 4 Created page with "{{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://git..." wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep }} == Status == Works fine with location services. All map providers still work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == [[File:MaepDroid4.png|500px]] [[Category:Extras]] [[Category:Navigation]] de18c1bc7046682f64aeb11fe1bb63ccf052b8fb 1091 1088 2021-05-23T13:40:52Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep |packager=[[User:Wizzup]] }} == Status == Works fine with location services. All map providers still work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == [[File:MaepDroid4.png|500px]] [[Category:Extras]] [[Category:Navigation]] d565b655007bd85739efd5d1dce9d5dcb04bf713 1093 1091 2021-05-23T13:41:14Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep |category=Navigation |packager=[[User:Wizzup]] }} == Status == Works fine with location services. All map providers still work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == [[File:MaepDroid4.png|500px]] [[Category:Extras]] [[Category:Navigation]] 050994f3e23dc1e8827747d53cd2c3f9eadd84bb Template:Infobox Package 10 139 1089 1024 2021-05-23T13:39:48Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} }} f5e6271117fdeb3f25b82956e1920b725fa2d005 1090 1089 2021-05-23T13:40:10Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} | header9 = | label9 = Packager | data9 = {{{packager|}}} }} 000c607a2a3d10799e90601fe38191f0363a69e1 File:BraekDroid4.png 6 146 1095 2021-05-23T13:43:02Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/braek 0 147 1096 2021-05-23T13:43:37Z Wizzup 4 Created page with "{{Infobox Package |status=Working |devices=All |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/braek |packager=[[User:Wizzup]] }} == Status == Seems t..." wikitext text/x-wiki {{Infobox Package |status=Working |devices=All |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/braek |packager=[[User:Wizzup]] }} == Status == Seems to break the screen == Screenshots == [[File:BraekDroid4.png|500px]] [[Category:Extras]] 70435cb07fa8be1d5732cd94323c30ee0987324d Extras/maep 0 145 1097 1093 2021-05-23T15:31:20Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep |category=Navigation |packager=[[User:Wizzup]] }} == Status == Works fine with location services. All map providers work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == [[File:MaepDroid4.png|500px]] [[Category:Extras]] [[Category:Navigation]] 959432bdabd8cfa5bbadc425cfe07e1950d99761 Motorola Droid 4 0 50 1098 972 2021-05-23T15:36:03Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> [[Category:Device]] eaf65fea6085bcee2c10af39d2484e36a8ee3b1e 1099 1098 2021-05-23T15:37:08Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] e959580db6a1e1b3c510f07c97333e3c844b0f7f 1100 1099 2021-05-23T15:42:47Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] f0f476061b92a4693c02d1353164cdf41760bf71 1105 1100 2021-05-27T15:21:44Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [[https://github.com/maemo-leste/pvr-omap4/|SGX540]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 4712103741bb2021332e5d844057e1bd922fbf39 1106 1105 2021-05-27T15:27:51Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 4cc647b7164aa8abacc8b65d4d3ec6900f417543 1111 1106 2021-06-03T02:13:45Z BuZz 32 /* Bluetooth */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == BT Audio headset == * sudo apt install pulseaudio-module-bluetooth blueman bluez * sudo modprobe hci_uart * pactl load-module module-bluetooth-discover * blueman * pair & trust your device, connect audiosink Quality seems a bit better in 'offline mode'. == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 52b949c55831d6fbdf67847728b6ee8feb8e3c53 1112 1111 2021-06-03T02:15:18Z BuZz 32 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== * sudo apt install pulseaudio-module-bluetooth blueman bluez * sudo modprobe hci_uart * pactl load-module module-bluetooth-discover * blueman * pair & trust your device, connect audiosink Quality seems a bit better in 'offline mode'. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] a07df67a89ff046a1abb3aff446d6130ed515fb5 1113 1112 2021-06-03T02:27:27Z BuZz 32 /* BT Audio headset */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: # qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz # route del default # sudo ifconfig wwan0 up # dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman Pair & trust your device, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 669f94701a2f218589bf810f5882eaa50df4bf7b 1114 1113 2021-06-03T02:28:02Z BuZz 32 /* 3G Internet */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman Pair & trust your device, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 57539bad3b3732ffc91555bdf1869b37f7197fdd 1115 1114 2021-06-03T17:07:56Z BuZz 32 /* BT Audio headset */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] cadef4c75c2b731fb4052d0bc03c3a065d2bc335 1118 1115 2021-06-29T09:55:00Z Clort 42 added instructions for recalibrating wifi wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device: apt reinstall ti-firmware-connectivity Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] dd75e8600f587025e4abd46c348bb36675181645 1119 1118 2021-06-29T10:01:32Z Clort 42 /* Using a configured Leste sdcard in a different Droid4 */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. The calibration script requires stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall ti-firmware-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] fc45b03b0a1681fe9ad81cbc321da42160ec844f 1120 1119 2021-06-29T10:02:49Z Clort 42 /* Using a configured Leste sdcard in a different Droid4 */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall ti-firmware-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 7622c8870fc9bc31c6c7922fea4feffd8fc7f368 1123 1120 2021-07-07T01:38:20Z Clort 42 /* Gallery */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall ti-firmware-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 6e2ddd0ec85812336c5d862ed62a936c87dad8f9 1132 1123 2021-07-08T21:13:22Z Clort 42 /* Using a configured Leste sdcard in a different Droid4 */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 0096862dbc04697f2db738a588f4de65db45e29d 1137 1132 2021-07-24T11:46:47Z BuZz 32 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 7ceee01af263ef9f6e23e6d6925406c342f76fbd 1143 1137 2021-07-28T11:17:26Z Clort 42 Added graphic of droid4 keyboard layout wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|left|maemo-leste droid4 keyboard]] == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 51b6de173af3642b90bb2aaf8e58e52cf021c1a0 1145 1143 2021-07-28T11:28:52Z Clort 42 /* Notes */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|left|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] e2a7a1d6d25a52ff18a6230c184eec6b545e2420 Motorola Droid Bionic 0 111 1101 1075 2021-05-23T15:42:52Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.10.4 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== Wifi ==== The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] 063026bfbb4b3276290b27a69cc8f3341963136e 1103 1101 2021-05-24T08:21:08Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.10.4 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] 068eddc183f5ac845489faa9da466396027c9cb5 1107 1103 2021-06-01T16:23:00Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2011-09-8 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.10.4 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> == Stuff to try == ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] 9fa61a744e57aae5d5b4fb5e1d1fef84a9967fe5 1136 1107 2021-07-24T10:52:46Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2011-09-8 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.10.4 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> <pre> 22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly </pre> == Stuff to try == ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] a31fa89b14e00f35406014618f1831f3de5ac0b1 1138 1136 2021-07-24T11:48:30Z BuZz 32 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa XT875 |dimensions=127x67.3x12.7mm |release_date=2011-09-8 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.10.4 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> <pre> 22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly </pre> == Stuff to try == ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] 3295dec657cd539ba4f7e3514deaf3605ae93890 Main Page 0 1 1102 1018 2021-05-23T17:49:13Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Getting Started == See [[Getting_Started|Getting Started]] == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Devices == See [[:Category:Device]] (not all are fully supported) == Extras packages with wiki pages == https://leste.maemo.org/Category:Extras == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/ *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 80f3a41885e0a843068b731cb664355da3aaaa1c 1116 1102 2021-06-12T09:44:24Z Parazyd 1 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Getting Started == See [[Getting_Started|Getting Started]] == Frequently Asked Questions == See [[Leste_FAQ|FAQ]] == Devices == See [[:Category:Device]] (not all are fully supported) == Extras packages with wiki pages == https://leste.maemo.org/Category:Extras == Latest Images == https://phoenix.maemo.org/view/Images/ == Development == See [[Development]] == Roadmap == === Project milestones === https://github.com/maemo-leste/bugtracker/milestones === Wishlist === You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. == Talks == See [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/ *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 23b73a0c09850977e9110fb2b28819bba905005d Leste FAQ 0 62 1104 774 2021-05-25T05:24:05Z Parazyd 1 wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel. In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], which favours device compatibility and ease of device porting, at the expense of software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Are there any technical merits in using System V init with OpenRC instead of systemd? === Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our currently list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb === How to translate Maemo Leste into my language? === We have our translation source files on Weblate, so anyone can contribute. See our [[Localization]] page for more information. 685a0d027e0552892fc6ce8bd72bb08933474fff Status/Wireless 0 78 1108 988 2021-06-02T11:44:48Z Wizzup 4 wikitext text/x-wiki Client mode should just work using the UI. == Features == * Open, WEP, WPA PSK and EAP networks should just work == Known bugs / To do == * Hidden APs do not fully work yet: https://github.com/maemo-leste/bugtracker/issues/489 * Flight mode might not disable wifi: https://github.com/maemo-leste/bugtracker/issues/190 / https://github.com/maemo-leste/bugtracker/issues/397 * Server certificates are not verified currently: https://github.com/maemo-leste/bugtracker/issues/137 * Scan results could be returned sooner: https://github.com/maemo-leste/bugtracker/issues/342 * easy-wlan wizard might be a bit buggy: https://github.com/maemo-leste/bugtracker/issues/221 To do: * Support passive scans: https://github.com/maemo-leste/bugtracker/issues/149 * Support more/new EAP methods: https://github.com/maemo-leste/bugtracker/issues/145 * Ad-Hoc mode not supported yet: https://github.com/maemo-leste/bugtracker/issues/154 * Support WPA3/SAE * Integration with hotspot missing * Support wifi powersaving: https://github.com/maemo-leste/bugtracker/issues/172 * Set the regdomain country based on ofono modem data (country) == Mobile Hotspot == There is no UI for this yet. To share your mobile data over wireless, you will need to install dnsmasq and hostapd. You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set): <pre> wpa=2 ssid=Internet wpa_passphrase=secureinternetpassword </pre> You can copy the example config files to /etc/hostapd/ For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so: <pre> interface=lo,wlan0 </pre> You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example: <pre> dhcp-range=192.168.44.50,192.168.44.150,12h </pre> Then restart dnsmasq. Next, configure iptables: <pre> sudo iptables -A POSTROUTING -t nat -s 192.168.44.1/24 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 </pre> And finally bring up the interface and run hostapd: <pre> sudo ifconfig wlan0 192.168.44.2 sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf </pre> e3228def5aa719e4449d9a8da8e2d3f803c95d69 1109 1108 2021-06-02T11:45:21Z Wizzup 4 wikitext text/x-wiki Client mode should just work using the UI. == Features == Open, WEP, WPA PSK and EAP networks should just work. Day to day usage should work fine. == Known bugs / To do == * Hidden APs do not fully work yet: https://github.com/maemo-leste/bugtracker/issues/489 * Flight mode might not disable wifi: https://github.com/maemo-leste/bugtracker/issues/190 / https://github.com/maemo-leste/bugtracker/issues/397 * Server certificates are not verified currently: https://github.com/maemo-leste/bugtracker/issues/137 * Scan results could be returned sooner: https://github.com/maemo-leste/bugtracker/issues/342 * easy-wlan wizard might be a bit buggy: https://github.com/maemo-leste/bugtracker/issues/221 To do: * Support passive scans: https://github.com/maemo-leste/bugtracker/issues/149 * Support more/new EAP methods: https://github.com/maemo-leste/bugtracker/issues/145 * Ad-Hoc mode not supported yet: https://github.com/maemo-leste/bugtracker/issues/154 * Support WPA3/SAE * Integration with hotspot missing * Support wifi powersaving: https://github.com/maemo-leste/bugtracker/issues/172 * Set the regdomain country based on ofono modem data (country) == Mobile Hotspot == There is no UI for this yet. To share your mobile data over wireless, you will need to install dnsmasq and hostapd. You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set): <pre> wpa=2 ssid=Internet wpa_passphrase=secureinternetpassword </pre> You can copy the example config files to /etc/hostapd/ For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so: <pre> interface=lo,wlan0 </pre> You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example: <pre> dhcp-range=192.168.44.50,192.168.44.150,12h </pre> Then restart dnsmasq. Next, configure iptables: <pre> sudo iptables -A POSTROUTING -t nat -s 192.168.44.1/24 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 </pre> And finally bring up the interface and run hostapd: <pre> sudo ifconfig wlan0 192.168.44.2 sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf </pre> ad5d9f65e67a961ce62e982399e7129bf7d7040f 1110 1109 2021-06-02T11:46:24Z Wizzup 4 wikitext text/x-wiki Client mode should just work using the UI. == Features == Open, WEP, WPA PSK and EAP networks should just work. Day to day usage should work fine. == Known bugs / To do == * Hidden APs do not fully work yet: https://github.com/maemo-leste/bugtracker/issues/489 * Flight mode might not disable wifi: https://github.com/maemo-leste/bugtracker/issues/190 / https://github.com/maemo-leste/bugtracker/issues/397 * Server certificates are not verified currently: https://github.com/maemo-leste/bugtracker/issues/137 * Scan results could be returned sooner: https://github.com/maemo-leste/bugtracker/issues/342 * easy-wlan wizard might be a bit buggy: https://github.com/maemo-leste/bugtracker/issues/221 To do: * Improve wpa_supplicant dbus handling code to pick up new interfaces and deal with them somehow (as opposed to hardcoding one interface) * Support passive scans: https://github.com/maemo-leste/bugtracker/issues/149 * Support more/new EAP methods: https://github.com/maemo-leste/bugtracker/issues/145 * Ad-Hoc mode not supported yet: https://github.com/maemo-leste/bugtracker/issues/154 * Support WPA3/SAE * Integration with hotspot missing * Support wifi powersaving: https://github.com/maemo-leste/bugtracker/issues/172 * Set the regdomain country based on ofono modem data (country) == Mobile Hotspot == There is no UI for this yet. To share your mobile data over wireless, you will need to install dnsmasq and hostapd. You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set): <pre> wpa=2 ssid=Internet wpa_passphrase=secureinternetpassword </pre> You can copy the example config files to /etc/hostapd/ For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so: <pre> interface=lo,wlan0 </pre> You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example: <pre> dhcp-range=192.168.44.50,192.168.44.150,12h </pre> Then restart dnsmasq. Next, configure iptables: <pre> sudo iptables -A POSTROUTING -t nat -s 192.168.44.1/24 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 </pre> And finally bring up the interface and run hostapd: <pre> sudo ifconfig wlan0 192.168.44.2 sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf </pre> ab77bc08f4b658eff218b3e534ab56d13bc59c1b Getting Started 0 105 1117 1004 2021-06-16T16:23:20Z Sicelo 5 Make cal issue clear wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with cat /proc/partitions Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = Expand the root partition to fill SD card = A helpful script is included to expand the root partition to fill the microSD card. After booting and logging in to root, execute: /etc/expandcard.sh This will expand the root partition to fill the microSD card using resize2fs. = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = == Lock Code (applies to N900 only) == * Default lockcode is "12345" * Lockcode can only be changed/used on [[Nokia_N900|N900]], since the current implementation depends on a special "cal" partition. QEMU and all other Leste supported devices do not have it. (TODO: Confirm if N9 and N950 have it too) = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] ee0951fe60874fd741626ed4f28e12650928d46e Calendar 0 109 1121 888 2021-07-02T15:31:53Z Uvos 39 wikitext text/x-wiki = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == you can try this script it currently only syncs the calendar # Install syncevolution first via 'apt install syncevolution' # Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh # Open it and change the vars to reflect your server # Run it if that dosent work try the section below == Synchronising manually == Install: <pre> apt install syncevolution </pre> Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == Syncevolution-frontend == The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation. Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 5e526d9c5339a7fc741b42e796e021f3ab3ef82d File:Droid4 Daimonin Hdmi.jpg 6 148 1122 2021-07-07T01:37:12Z Clort 42 Example of droid4 with hdmi out enabled: xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off wikitext text/x-wiki == Summary == Example of droid4 with hdmi out enabled: xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off 20136fd571b127e65a65d9d08fe37bb0f01d8700 Propaganda 0 136 1124 1011 2021-07-08T15:37:18Z Parazyd 1 wikitext text/x-wiki Put all memes here [[File:Os-addicts.jpg|200px]] [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] [[File:Refuse-duopoly.jpg|200px]] 5f8f4900fe87aad87758a18447d3c8e0a7ac2929 1126 1124 2021-07-08T15:39:00Z Parazyd 1 wikitext text/x-wiki <big><big><big>Put all memes here</big></big></big> <hr> [[File:Os-addicts.jpg|200px]] [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] [[File:Refuse-duopoly.jpg|200px]] <hr> [[File:MaemoSealeste.jpg|200px]] ca1fe4da66404df87b6fd0accfd4bf60545e7ba0 1127 1126 2021-07-08T15:40:46Z Parazyd 1 wikitext text/x-wiki Place all memes of Maemo Leste you find here. == Propaganda == [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] [[File:Refuse-duopoly.jpg|200px]] == Memes == [[File:Os-addicts.jpg|200px]] == Various == [[File:MaemoSealeste.jpg|200px]] 9d9ae25404d822c56e5de51a3c85bc43a4004bcd File:MaemoSealeste.jpg 6 149 1125 2021-07-08T15:37:39Z Parazyd 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Leste-scummvm-bigtheme.jpg 6 150 1128 2021-07-08T19:39:49Z Clort 42 Scummvm large theme (before widescreen mod) on Droid4 wikitext text/x-wiki == Summary == Scummvm large theme (before widescreen mod) on Droid4 bdfe3a4fc71897f3f7fa86682b3d6a1cf46c76df Extras/ScummVM 0 137 1129 1094 2021-07-08T20:10:24Z Clort 42 /* Status */ wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm |category=Games |packager=[[User:Wizzup]] }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input * GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI: [[File:Leste-scummvm-bigtheme.jpg|500px]] To get large readable GUI: <code>edit ~/.config/scummvm.ini change gui_base=0 to gui_base=240</code> === Tested games === Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1 ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] ==== TODO ==== * Revise Maemo-Leste configure backend/target to remove 'optification' * Create Widescreen readable theme * Fix mouse cursor tracking for touchscreen * Find rendering and build options for low battery use (adventure game sessions can be long) * Get Maemo-Leste target into upstream SCUMMVM == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] 55f4df05ce2e3d71323963298df1dfee089a1070 1130 1129 2021-07-08T20:11:24Z Clort 42 /* Status */ wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm |category=Games |packager=[[User:Wizzup]] }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input * GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI: [[File:Leste-scummvm-bigtheme.jpg|500px]] To get large readable GUI: <code>edit ~/.config/scummvm.ini change gui_base=0 to gui_base=240</code> === Tested games === Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1 ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. [[Category:Extras]] [[Category:Games]] 4a670e2348f5e9205f99acfeea681b83e4dc8d04 1131 1130 2021-07-08T20:12:20Z Clort 42 /* TODO */ wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm |category=Games |packager=[[User:Wizzup]] }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input * GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI: [[File:Leste-scummvm-bigtheme.jpg|500px]] To get large readable GUI: <code>edit ~/.config/scummvm.ini change gui_base=0 to gui_base=240</code> === Tested games === Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1 ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. * Revise Maemo-Leste configure backend/target to remove 'optification' * Create Widescreen readable theme * Fix mouse cursor tracking for touchscreen * Find rendering and build options for low battery use (adventure game sessions can be long) * Get Maemo-Leste target into upstream SCUMMVM [[Category:Extras]] [[Category:Games]] 67acfa02eac7572d8f5d5c6f230005f603fde642 1133 1131 2021-07-08T22:00:10Z Clort 42 /* TODO */ wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm |category=Games |packager=[[User:Wizzup]] }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input * GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI: [[File:Leste-scummvm-bigtheme.jpg|500px]] To get large readable GUI: <code>edit ~/.config/scummvm.ini change gui_base=0 to gui_base=240</code> === Tested games === Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1 ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. * Revise Maemo-Leste configure backend/target to remove 'optification' * Create Widescreen readable theme * Find rendering and build options for low battery use (adventure game sessions can be long) * Get Maemo-Leste target into upstream SCUMMVM [[Category:Extras]] [[Category:Games]] 2f0b51e06948158fc69db80017a70199fc785a5a 1134 1133 2021-07-09T01:15:58Z Clort 42 /* TODO */ wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm |category=Games |packager=[[User:Wizzup]] }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input * GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI: [[File:Leste-scummvm-bigtheme.jpg|500px]] To get large readable GUI: <code>edit ~/.config/scummvm.ini change gui_base=0 to gui_base=240</code> === Tested games === Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1 ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. * Revise Maemo-Leste configure backend/target to remove 'optification' * Create Widescreen readable theme * Fix touchscreen to pointer position de-synchronization. (Starts okay, goes bad). * Find rendering and build options for low battery use (adventure game sessions can be long) * Get Maemo-Leste target into upstream SCUMMVM [[Category:Extras]] [[Category:Games]] c92d3443ba6ab461373809c6b854cf686eaa6dac Nokia N900 0 48 1135 1082 2021-07-14T09:41:41Z Clort 42 /* Added source repository for 0xFFFF */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 64551e02bf93872b87ad90765cfd3d7422e3ae14 Motorola Droid 3 0 151 1139 2021-07-24T12:42:58Z Wizzup 4 Initial page wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Solana XT862 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} (Work in progress) [[Category:Device]] feae370336aa7e120f9a89e86c4d7c1317d22f09 1140 1139 2021-07-24T12:43:19Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[ |manufacturer=Motorola |codename=Solana XT862 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} (Work in progress) [[Category:Device]] d25376b2a2922253104da9592c853eea358d1b52 1141 1140 2021-07-24T12:45:52Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} (Work in progress) [[Category:Device]] 6b8fbc99265d4013ea75437c4f06637323ddaf49 File:Maemo-leste-droid4-kbd-2021-07.png 6 152 1142 2021-07-28T11:09:52Z Clort 42 View of Droid4 Keyboard layout with 'OK' special keys. wikitext text/x-wiki == Summary == View of Droid4 Keyboard layout with 'OK' special keys. 997df2084f6e36ec65c215f8026140f43a17a050 1144 1142 2021-07-28T11:25:07Z Clort 42 Clort uploaded a new version of [[File:Maemo-leste-droid4-kbd-2021-07.png]] wikitext text/x-wiki == Summary == View of Droid4 Keyboard layout with 'OK' special keys. 997df2084f6e36ec65c215f8026140f43a17a050 Motorola Droid 4 0 50 1146 1145 2021-07-28T11:29:18Z Clort 42 /* Notes */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|aemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 829e8df7e7f6b8b7b185679b954b610d9f9b4007 1147 1146 2021-07-28T11:30:11Z Clort 42 /* Notes */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|aemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 887bdba9324a224b4dd93628258c57274686e393 1148 1147 2021-07-28T11:30:51Z Clort 42 /* Notes */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 0e4a854440bd4d0877fddefe98666ea6a622ec85 Wishlist 0 89 1149 1015 2021-08-09T14:18:08Z Clort 42 /* Applications */ Flite is in devuan repo wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. a5d9a44d4002c497d23c439513939ec192afe9e5 Debugging 0 128 1150 1000 2021-09-23T07:51:26Z Wizzup 4 wikitext text/x-wiki === Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages * Install the -dbg and -dbgsym dependencies of the packages * Attach to the program in gdb (or start it from gdb) ==== Add the debug repositories ==== Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file: <pre> # cat /etc/apt/sources.list.d/debug.list deb http://deb.debian.org/debian-debug/ buster-debug main deb http://deb.debian.org/debian-debug/ buster-backports-debug main deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free </pre> ==== Identify the program that crashes ==== Example: location-status (the location status applet) crashes. Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols: <pre> # dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so # apt-cache search location-status | grep dbg location-status-dbgsym - debug symbols for location-status # apt install location-status-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: location-status-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 27,1 kB of archives. After this operation, 41,0 kB of additional disk space will be used. 0% [Working] Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB] Fetched 27,1 kB in 0s (55,8 kB/s) Selecting previously unselected package location-status-dbgsym. (Reading database ... 96891 files and directories currently installed.) Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ... Unpacking location-status-dbgsym (0.111-1+2m7) ... Setting up location-status-dbgsym (0.111-1+2m7) ... </pre> ==== Install additional debug files ==== To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd: <pre> # ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so </pre> This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg libglib2.0-0-dbgsym - debug symbols for libglib2.0-0 # apt install libglib2.0-0-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libglib2.0-0-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 4240 kB of archives. After this operation, 4984 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB] 0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%] Fetched 4240 kB in 3s (1278 kB/s) Selecting previously unselected package libglib2.0-0-dbgsym:armhf. (Reading database ... 96893 files and directories currently installed.) Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... </pre> We can repeat this process until we get satisfactory backtraces in gdb. For example: <pre> # gdb attach <pid> [...] Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 284 ../../../glib/grefcount.c: No such file or directory. (gdb) bt #0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 #1 0xb660cf0a in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153 #2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1 </pre> This means we should probably install debug symbols for libosso.so.1, so we add it and repeat: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1 libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1 root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg libosso1-dbgsym - debug symbols for libosso1 root@maindroid:/etc/apt# apt install libosso1-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libosso1-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 111 kB of archives. After this operation, 137 kB of additional disk space will be used. Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB] Fetched 111 kB in 1s (197 kB/s) Selecting previously unselected package libosso1-dbgsym. (Reading database ... 96903 files and directories currently installed.) Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ... Unpacking libosso1-dbgsym (2.35+2m7) ... Setting up libosso1-dbgsym (2.35+2m7) ... </pre> Try again in gdb: <pre> [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0x10460f44 in ?? () (gdb) bt #0 0x10460f44 in () #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0 </pre> Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace: <pre> root@maindroid:/etc/apt# gdb attach 8990 GNU gdb (Debian 8.2.1-2+b3) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... attach: No such file or directory. Attaching to process 8990 [New LWP 8991] [New LWP 8992] [New LWP 8993] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 1028 ../../../gobject/gclosure.c: No such file or directory. (gdb) bt #0 0xb66cb768 in g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712 #14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004) at ../../../gobject/gclosure.c:810 #12 0xb66dab7c in signal_emit_unlocked_R (node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068) at ../../../gobject/gsignal.c:3565 #13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604 #20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED (closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84 #17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294) at ../../../gobject/gclosure.c:810 #18 0xb66da2e2 in signal_emit_unlocked_R (node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8) at ../../../gobject/gsignal.c:3673 #19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3401 #21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211 #22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008 #23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503 #24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698 #25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503 #26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425 #27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182 #28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847 #29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920 #30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116 #31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270 #32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch #33 0x004d208a in main () </pre> === Debugging applications launched via maemo-launcher === When programs are launched via maemo-launcher (many are), like the status area applet, then to debug problems, you can attach with gdb to the running processes. However, it is more likely that you will need to recompile and debug, in which case you should stop the 'service' or program with dsmetool (if required), and invoke the program using maemo-summoner, like so: <pre> user@devuan:~$ gdb maemo-summoner [...] (gdb) r hildon-status-menu.launch </pre> And valgrind: <pre> valgrind maemo-summoner hildon-status-menu.launch </pre> === Dealing with Maemo Launcher / Maemo Invoker === Some programs are started using Maemo Launcher, like the status menu. Sometimes you would want to debug those applications is by starting them within valgrind or gdb, rather than attaching. First, make sure the tool is not automatically (re)started by dsme: <pre> sudo dsmetool -k /usr/bin/hildon-status-menu </pre> And then start it manually like so: <pre> gdb --args maemo-summoner /usr/bin/hildon-status-menu.launch </pre> Or in the case of valgrind: <pre> valgrind maemo-summoner /usr/bin/hildon-status-menu.launch </pre> (Note the .launch suffix) 1d21a24f3479f33e33f8857885ea7b5e1d7b05ef 1151 1150 2021-09-26T15:30:30Z Wizzup 4 wikitext text/x-wiki === Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages * Install the -dbg and -dbgsym dependencies of the packages * Attach to the program in gdb (or start it from gdb) ==== Add the debug repositories ==== Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file: <pre> # cat /etc/apt/sources.list.d/debug.list deb http://deb.debian.org/debian-debug/ buster-debug main deb http://deb.debian.org/debian-debug/ buster-backports-debug main deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free </pre> ==== Identify the program that crashes ==== Example: location-status (the location status applet) crashes. Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols: <pre> # dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so # apt-cache search location-status | grep dbg location-status-dbgsym - debug symbols for location-status # apt install location-status-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: location-status-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 27,1 kB of archives. After this operation, 41,0 kB of additional disk space will be used. 0% [Working] Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB] Fetched 27,1 kB in 0s (55,8 kB/s) Selecting previously unselected package location-status-dbgsym. (Reading database ... 96891 files and directories currently installed.) Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ... Unpacking location-status-dbgsym (0.111-1+2m7) ... Setting up location-status-dbgsym (0.111-1+2m7) ... </pre> ==== Install additional debug files ==== To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd: <pre> # ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so </pre> This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3 root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg libglib2.0-0-dbgsym - debug symbols for libglib2.0-0 # apt install libglib2.0-0-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libglib2.0-0-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 4240 kB of archives. After this operation, 4984 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB] 0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%] Fetched 4240 kB in 3s (1278 kB/s) Selecting previously unselected package libglib2.0-0-dbgsym:armhf. (Reading database ... 96893 files and directories currently installed.) Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ... </pre> We can repeat this process until we get satisfactory backtraces in gdb. For example: <pre> # gdb attach <pid> [...] Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 284 ../../../glib/grefcount.c: No such file or directory. (gdb) bt #0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284 #1 0xb660cf0a in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153 #2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1 </pre> This means we should probably install debug symbols for libosso.so.1, so we add it and repeat: <pre> root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1 libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1 root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg libosso1-dbgsym - debug symbols for libosso1 root@maindroid:/etc/apt# apt install libosso1-dbgsym Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libmicrodns0 Use 'apt autoremove' to remove it. The following NEW packages will be installed: libosso1-dbgsym 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 111 kB of archives. After this operation, 137 kB of additional disk space will be used. Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB] Fetched 111 kB in 1s (197 kB/s) Selecting previously unselected package libosso1-dbgsym. (Reading database ... 96903 files and directories currently installed.) Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ... Unpacking libosso1-dbgsym (2.35+2m7) ... Setting up libosso1-dbgsym (2.35+2m7) ... </pre> Try again in gdb: <pre> [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. 0x10460f44 in ?? () (gdb) bt #0 0x10460f44 in () #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0 </pre> Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace: <pre> root@maindroid:/etc/apt# gdb attach 8990 GNU gdb (Debian 8.2.1-2+b3) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... attach: No such file or directory. Attaching to process 8990 [New LWP 8991] [New LWP 8992] [New LWP 8993] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. (gdb) c Continuing. Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault. g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 1028 ../../../gobject/gclosure.c: No such file or directory. (gdb) bt #0 0xb66cb768 in g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0) at ../../../gobject/gclosure.c:1028 #1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379 #2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153 #3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103 #4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1) at osso-cp-plugin.c:148 #5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84 #9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c) at ../../../gobject/gclosure.c:810 #7 0xb66dab0a in signal_emit_unlocked_R (node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0) at ../../../gobject/gsignal.c:3635 #8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712 #14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004) at ../../../gobject/gclosure.c:810 #12 0xb66dab7c in signal_emit_unlocked_R (node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068) at ../../../gobject/gsignal.c:3565 #13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3391 #15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604 #20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0) at ../../../gobject/gsignal.c:3447 #16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED (closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84 #17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294) at ../../../gobject/gclosure.c:810 #18 0xb66da2e2 in signal_emit_unlocked_R (node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8) at ../../../gobject/gsignal.c:3673 #19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=..., var_args@entry=...) at ../../../gobject/gsignal.c:3401 #21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211 #22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008 #23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503 #24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698 #25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503 #26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425 #27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182 #28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847 #29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920 #30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116 #31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270 #32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch #33 0x004d208a in main () </pre> === Dealing with Maemo Launcher / Maemo Invoker === Some programs are started using Maemo Launcher, like the status menu. Sometimes you would want to debug those applications is by starting them within valgrind or gdb, rather than attaching. First, make sure the tool is not automatically (re)started by dsme: <pre> sudo dsmetool -k /usr/bin/hildon-status-menu </pre> And then start it manually like so: <pre> gdb --args maemo-summoner /usr/bin/hildon-status-menu.launch </pre> Or in the case of valgrind: <pre> valgrind maemo-summoner /usr/bin/hildon-status-menu.launch </pre> (Note the .launch suffix) 2cab7b8588cf9ac035435b856164c74045f7f9b0 IRC channel 0 54 1152 1016 2021-10-01T09:23:54Z Wizzup 4 wikitext text/x-wiki We are on '''irc.libera.chat''' ; channel '''#maemo-leste''' We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not 'police' the channel, it is also good etiquette to remain on-topic as far as possible. If you use Matrix, then you can connect to the IRC channel via Libera's bridge. Simply join the room '''#maemo-leste:libera.chat'''. However, please note the following caveats when using the bridge: * Matrix allows a message to have multiple lines (i.e. include returns). This does not look good on IRC clients. Therefore, please refrain from sending multi-line messages * Matrix allows sending media and files within the chat, while IRC does not. On IRC, this will appear as an URL. Please do not send any media or files directly into an IRC room. Use a pastebin, and paste the URL to the item, and include a brief explanation about the link. Otherwise no one might be willing to open it 9c7857841984d890ed61dfc1dcba31e26a2668ad Wireguard 0 153 1153 2021-10-02T22:55:26Z Wizzup 4 Created page with "= Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, r..." wikitext text/x-wiki = Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo). 4bb35e727076363175bd8242eef7224ad90e178a 1155 1153 2021-10-02T23:03:01Z Wizzup 4 wikitext text/x-wiki = Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo). == Gallery == <gallery> WireguardConnected.png </gallery> 70cc9120979772f5e8c03df7dd88788d379af9fb 1158 1155 2021-10-02T23:03:44Z Wizzup 4 wikitext text/x-wiki = Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo). == Gallery == <gallery> WireguardConnected.png WireguardCPA.png WireguardCPA2.png </gallery> 48af80ebb06d013f7f006ee3842041b7b7bed298 1160 1158 2021-10-02T23:05:36Z Wizzup 4 wikitext text/x-wiki = Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo). == Gallery == <gallery> WireguardAppMgr.png WireguardConnected.png WireguardCPA.png WireguardCPA2.png </gallery> a3eb2a0bf67ad6d845fff902b3fa347f6b55aaee 1163 1160 2021-10-02T23:10:33Z Wizzup 4 wikitext text/x-wiki = Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo). == Gallery == <gallery> WireguardAppMgr.png WireguardProvider2.png WireguardConnected.png WireguardCPA.png WireguardCPA2.png WireguardProvider.png </gallery> 9180728dfbca7d703fb20e6080005457ea2ea54c 1164 1163 2021-10-02T23:35:44Z Wizzup 4 wikitext text/x-wiki = Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo). == Gallery == <gallery widths=320px heights=173px> WireguardAppMgr.png WireguardProvider2.png WireguardConnected.png WireguardCPA.png WireguardCPA2.png WireguardProvider.png </gallery> af88269c79b43aa80d4acf9dc0868e3dabc570a1 1165 1164 2021-10-02T23:47:02Z Wizzup 4 wikitext text/x-wiki = Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo). == Gallery == <gallery widths=320px heights=173px> WireguardAppMgr.png|Wireguard is installable from the application manager WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP) WireguardConnected.png|Wireguard is connected WireguardCPA.png|Wireguard control panel applet icon WireguardCPA2.png|Wireguard control panel, editing a configuration WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration </gallery> 889020a753c20ae8df2847636cb394b70e8c2c49 1166 1165 2021-10-02T23:50:28Z Wizzup 4 wikitext text/x-wiki = Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors. Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo). == Gallery == <gallery widths=320px heights=173px> WireguardAppMgr.png|Wireguard is installable from the application manager WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP) WireguardConnected.png|Wireguard is connected WireguardCPA.png|Wireguard control panel applet icon WireguardCPA2.png|Wireguard control panel, editing a configuration WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration </gallery> 8c715a6774741c44f4158fdeffe2047be025ef4d 1167 1166 2021-10-03T09:42:56Z Wizzup 4 wikitext text/x-wiki = Wireguard = [https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. === Tunnelling all traffic over Wireguard === Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors. Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo). == Gallery == <gallery widths=320px heights=173px> WireguardAppMgr.png|Wireguard is installable from the application manager WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP) WireguardConnected.png|Wireguard is connected WireguardCPA.png|Wireguard control panel applet icon WireguardCPA2.png|Wireguard control panel, editing a configuration WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration </gallery> 30d93bfa6f00829cd1cf975d837e30b5d20fa086 1168 1167 2021-10-03T09:52:45Z Wizzup 4 wikitext text/x-wiki = Wireguard = [https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. (This may be replaced in the future, as the PostUp and such lines could potentially be edited by non-root users but run as root!) === Tunnelling all traffic over Wireguard === Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors. Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo). == Gallery == <gallery widths=320px heights=173px> WireguardAppMgr.png|Wireguard is installable from the application manager WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP) WireguardConnected.png|Wireguard is connected WireguardCPA.png|Wireguard control panel applet icon WireguardCPA2.png|Wireguard control panel, editing a configuration WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration </gallery> 8b0d7589bc85be91022c8c1294b7fda1379b2464 1169 1168 2021-10-03T09:54:19Z Wizzup 4 wikitext text/x-wiki = Wireguard in Maemo Leste = [https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. (This may be replaced in the future, as the PostUp and such lines could potentially be edited by non-root users but run as root!) === Tunnelling all traffic over Wireguard === Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors. Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo). == Gallery == <gallery widths=320px heights=173px> WireguardAppMgr.png|Wireguard is installable from the application manager WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP) WireguardConnected.png|Wireguard is connected WireguardCPA.png|Wireguard control panel applet icon WireguardCPA2.png|Wireguard control panel, editing a configuration WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration </gallery> 698d5ba41588c95f2a76a2ae5255f7a5d5a7d033 1182 1169 2021-10-10T09:06:13Z Wizzup 4 wikitext text/x-wiki = Wireguard in Maemo Leste = [https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. (This may be replaced in the future, as the PostUp and such lines could potentially be edited by non-root users but run as root!) === Tunnelling all traffic over Wireguard === Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors. Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo). == Gallery == <gallery widths=320px heights=173px> WireguardAppMgr.png|Wireguard is installable from the application manager WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP) WireguardConnected.png|Wireguard is connected WireguardCPA.png|Wireguard control panel applet icon WireguardCPA2.png|Wireguard control panel, editing a configuration WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration </gallery> [[Category:Extras]] [[Category:Network]] cc3b85b20242f2533825f3f9f50f2e108d0aaef6 File:WireguardConnected.png 6 154 1154 2021-10-02T23:02:22Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:WireguardCPA.png 6 155 1156 2021-10-02T23:03:18Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:WireguardCPA2.png 6 156 1157 2021-10-02T23:03:30Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:WireguardAppMgr.png 6 157 1159 2021-10-02T23:05:25Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:WireguardProvider.png 6 158 1161 2021-10-02T23:09:02Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:WireguardProvider2.png 6 159 1162 2021-10-02T23:10:20Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:TorProvider.png 6 160 1170 2021-10-03T10:14:23Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:TorProvider2.png 6 161 1171 2021-10-03T10:14:45Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:TorCPA.png 6 162 1172 2021-10-03T10:15:05Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:TorCPA2.png 6 163 1173 2021-10-03T10:15:19Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:TorConnected.png 6 164 1174 2021-10-03T10:15:32Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:TorAppMgr.png 6 165 1175 2021-10-03T10:15:46Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:TorAppMgr2.png 6 166 1176 2021-10-03T10:15:59Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:TorCheck.png 6 167 1177 2021-10-03T10:18:32Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Tor 0 168 1178 2021-10-03T10:26:25Z Wizzup 4 Created page with "= Tor in Maemo Leste = [https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once..." wikitext text/x-wiki = Tor in Maemo Leste = [https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet. Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported. == Configuring Tor using the UI == In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings. Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort. == Obligatory word of warning == If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time. Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location. == Gallery == <gallery widths=320px heights=173px> TorAppMgr.png|Tor is installable from the application manager TorAppMgr2.png TorCheck.png|Checking system wide support TorProvider.png|Setting a per connection (IAP) Wireguard configuration TorProvider2.png| TorConnected.png|Tor is connected TorCPA.png|Tor control panel applet icon TorCPA2.png|Tor control panel, editing a configuration </gallery> d1ab89d07151a55183b6a1403880e504f59bb862 1179 1178 2021-10-03T10:27:46Z Wizzup 4 wikitext text/x-wiki = Tor in Maemo Leste = [https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet. Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported. == Configuring Tor using the UI == In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings. Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort. == Obligatory word of warning == If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time. Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location. Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage. == Gallery == <gallery widths=320px heights=173px> TorAppMgr.png|Tor is installable from the application manager TorAppMgr2.png TorCheck.png|Checking system wide support TorProvider.png|Setting a per connection (IAP) Wireguard configuration TorProvider2.png| TorConnected.png|Tor is connected TorCPA.png|Tor control panel applet icon TorCPA2.png|Tor control panel, editing a configuration </gallery> 98f0a2797524d63cdb8e981db5a55d813e46fc4a 1181 1179 2021-10-10T09:05:56Z Wizzup 4 wikitext text/x-wiki = Tor in Maemo Leste = [https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet. Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported. == Configuring Tor using the UI == In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings. Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort. == Obligatory word of warning == If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time. Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location. Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage. == Gallery == <gallery widths=320px heights=173px> TorAppMgr.png|Tor is installable from the application manager TorAppMgr2.png TorCheck.png|Checking system wide support TorProvider.png|Setting a per connection (IAP) Wireguard configuration TorProvider2.png| TorConnected.png|Tor is connected TorCPA.png|Tor control panel applet icon TorCPA2.png|Tor control panel, editing a configuration </gallery> [[Category:Extras]] [[Category:Network]] 2d407c723312575cc612492cff73900172a67f1c Virtual Machine 0 60 1180 910 2021-10-09T21:40:53Z Meridion 50 Add warning about screen locking in the VM image. wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like: qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add: -usb -device usb-tablet to the command line. Alternatively if that dose not work you can instead add: -usb -device usb-mouse -machine vmport=off If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image. The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly. * Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted. * In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo su - dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 A fresh Maemo VM image will also lock the device screen by default. In Qemu this means the only way to gain access to the VM again is either via SSH or by sending the power button command. This happens after 30 seconds of no activity on the device. We recommend disabling this behaviour by going to the settings and then open the "display" applet - uncheck "Lock screen automatically". == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] a82249d8283efd84c3c77baebed64ead084646ae Main Page 0 1 1183 1116 2021-10-10T09:13:58Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/ *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 0b62a37b6dd3e471e8a4965583d4231640a6940e 1184 1183 2021-10-10T09:23:30Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> c1bcd2121fca3af5d0032156e277364471a158e3 1185 1184 2021-10-10T13:12:05Z Wizzup 4 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the [[Nokia_N900]] and the [[Motorola Droid 4]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 205f0c0fc5f148e223d8c909f489e0aed13e4573 Motorola Droid 3 0 151 1186 1141 2021-10-23T18:14:30Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) [[Category:Device]] 1bbb73a04d068a883c07233e02642cf43e66aab0 1187 1186 2021-10-23T18:16:34Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. [[Category:Device]] ec34702bb34e657c09cc8db3ea710f9805a15084 1188 1187 2021-10-23T18:22:45Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. [[Category:Device]] 60a2a4c70d11651b3fef829412c9014b85269026 1189 1188 2021-10-23T18:28:58Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * 3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting * touchscreen buttons do not work yet Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. [[Category:Device]] b39178195d7302ecd69801b55824fde98ebff799 1190 1189 2021-10-23T18:33:06Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * 3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting * touchscreen buttons do not work yet * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. [[Category:Device]] 19d7df762a0ed701da531ba7c0de52a9d3b22476 1191 1190 2021-10-23T18:36:55Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * 3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting * touchscreen buttons do not work yet * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] 9f279736ece5da33686abf5f63c3f92a68592c09 File:Gpsrecorder.png 6 169 1192 2021-10-28T15:06:25Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/gpsrecorder 0 170 1193 2021-10-28T15:06:40Z Wizzup 4 Created page with "{{Infobox Package |image=[[File:GpsrecorderLogo64.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https:..." wikitext text/x-wiki {{Infobox Package |image=[[File:GpsrecorderLogo64.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder |category=Navigation |packager=[[User:Wizzup]] }} The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats. == Status == Works fine with location services. == Screenshots == [[File:GpsrecorderDroid4.png|500px]] [[Category:Extras]] [[Category:Navigation]] ec411c2a863fc4920d6494b2684efde0311fef40 1194 1193 2021-10-28T15:06:58Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:Gpsrecorder.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder |category=Navigation |packager=[[User:Wizzup]] }} The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats. == Status == Works fine with location services. == Screenshots == [[File:GpsrecorderDroid4.png|500px]] [[Category:Extras]] [[Category:Navigation]] 0bc6041be3a82721175bdda3d4f0478eeb55d797 File:GpsrecorderDroid4.png 6 171 1195 2021-10-28T15:10:51Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:GpsrecorderDroid4 2.png 6 172 1196 2021-10-28T15:11:08Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/gpsrecorder 0 170 1197 1194 2021-10-28T15:12:24Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:Gpsrecorder.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder |category=Navigation |packager=[[User:Wizzup]] }} The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats. == Status == Works fine with location services. == Screenshots == <gallery widths=320px heights=173px> GpsrecorderDroid4.png|gpsrecorder screen with active GPS lock GpsrecorderDroid4_2.png|Sattelite overview </gallery> [[Category:Extras]] [[Category:Navigation]] 6fe308a2ac4c21db88f0ae13407638685f7637af 1201 1197 2021-10-28T15:15:12Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:Gpsrecorder.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder |category=Navigation |packager=[[User:Wizzup]] }} The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats. == Status == Works fine with location services. == Screenshots == <gallery widths=320px heights=173px> GpsrecorderDroid4.png|gpsrecorder screen with active GPS lock GpsrecorderDroid4_2.png|Satellite overview </gallery> [[Category:Extras]] [[Category:Navigation]] ddddc0cbdbf75bcb5660ff31002df39bbe1890f5 1229 1201 2021-11-01T18:24:47Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:Gpsrecorder.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder |category=Navigation |packager=[[User:Wizzup]] }} The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats. == Status == Works fine with location services. == Screenshots == <gallery widths=320px heights=173px> GpsrecorderDroid4.png|gpsrecorder screen with active GPS lock GpsrecorderDroid4_2.png|Satellite overview </gallery> [[Category:Extras]] 1254840e5e9650b6b25869a6798d55e4a5b1b280 File:CloudgpsDroid4.png 6 173 1198 2021-10-28T15:13:31Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:CloudgpsDroid4 2.png 6 174 1199 2021-10-28T15:13:55Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:CloudgpsLogo64.png 6 175 1200 2021-10-28T15:14:53Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/cloudgps 0 176 1202 2021-10-28T15:15:23Z Wizzup 4 Created page with "{{Infobox Package |image=[[File:CloudgpsLogo64.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://g..." wikitext text/x-wiki {{Infobox Package |image=[[File:CloudgpsLogo64.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/cloudgps |category=Navigation |packager=[[User:Wizzup]] }} The cloudgps package provides a smooth and interactive location viewer. == Status == Works fine with location services. == Screenshots == <gallery widths=320px heights=173px> CloudgpsDroid4.png|3D view CloudgpsDroid4_2.png|2D view </gallery> [[Category:Extras]] [[Category:Navigation]] 1c031ffd3277eb8967a8343cbb0b8b05f1a015ee 1234 1202 2021-11-01T18:29:48Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:CloudgpsLogo64.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/cloudgps |category=Navigation |packager=[[User:Wizzup]] }} The cloudgps package provides a smooth and interactive location viewer. == Status == Works fine with location services. == Screenshots == <gallery widths=320px heights=173px> CloudgpsDroid4.png|3D view CloudgpsDroid4_2.png|2D view </gallery> [[Category:Extras]] d59664813a0574740d47b36d8a07663801a5b8fc Extras/maep 0 145 1203 1097 2021-10-28T15:16:12Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep |category=Navigation |packager=[[User:Wizzup]] }} == Status == Works fine with location services. All map providers work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == <gallery widths=320px heights=173px> File:MaepDroid4.png|main maep screen </gallery> [[Category:Extras]] [[Category:Navigation]] 23964dc80265fb66904ca1287dc8c225e6a14961 1212 1203 2021-11-01T18:08:24Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep |category=[[Category:Navigation]] |packager=[[User:Wizzup]] }} == Status == Works fine with location services. All map providers work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == <gallery widths=320px heights=173px> File:MaepDroid4.png|main maep screen </gallery> [[Category:Extras]] [[Category:Navigation]] 2cd02a5fdf586a706e0a8de6feb305ffed2f48fe 1213 1212 2021-11-01T18:09:15Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep |category=Category:Navigation |packager=[[User:Wizzup]] }} == Status == Works fine with location services. All map providers work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == <gallery widths=320px heights=173px> File:MaepDroid4.png|main maep screen </gallery> [[Category:Extras]] [[Category:Navigation]] ecacf7c6ce1e6cdbd8406b849802a452d534286d 1224 1213 2021-11-01T18:20:36Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep |category=Navigation |packager=[[User:Wizzup]] }} == Status == Works fine with location services. All map providers work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == <gallery widths=320px heights=173px> File:MaepDroid4.png|main maep screen </gallery> [[Category:Extras]] [[Category:Navigation]] 23964dc80265fb66904ca1287dc8c225e6a14961 1225 1224 2021-11-01T18:20:50Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/maep |category=Navigation |packager=[[User:Wizzup]] }} == Status == Works fine with location services. All map providers work, GPS tracking works. Could be a bit snappier with faster 2D acceleration. == Screenshots == <gallery widths=320px heights=173px> File:MaepDroid4.png|main maep screen </gallery> [[Category:Extras]] aa29bb4001dfeda83eef25d1f7c553411be5fa42 File:ModranaDroid4.png 6 177 1204 2021-10-28T15:16:48Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ModranaDroid4 2.png 6 178 1205 2021-10-28T15:17:09Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ModranaLogo256.png 6 179 1206 2021-10-28T15:18:57Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/modrana 0 180 1207 2021-10-28T15:19:14Z Wizzup 4 Created page with "{{Infobox Package |image=[[File:ModranaLogo256.png|256px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://..." wikitext text/x-wiki {{Infobox Package |image=[[File:ModranaLogo256.png|256px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/modrana |category=Navigation |packager=[[User:Wizzup]] }} The Modrana package provides detailed GPS data, routing services, navigation and more... == Status == Works fine with location services. == Screenshots == <gallery widths=320px heights=173px> ModranaDroid4.png|Main screen ModranaDroid4_2.png|Options </gallery> [[Category:Extras]] [[Category:Navigation]] e499111a8adeb680a10441bb803fb9a151dd0dac 1233 1207 2021-11-01T18:29:25Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ModranaLogo256.png|256px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/modrana |category=Navigation |packager=[[User:Wizzup]] }} The Modrana package provides detailed GPS data, routing services, navigation and more... == Status == Works fine with location services. == Screenshots == <gallery widths=320px heights=173px> ModranaDroid4.png|Main screen ModranaDroid4_2.png|Options </gallery> [[Category:Extras]] 78690f4665b48a2d06a1c3fa5a5d22402a9f165d File:Dorian-1.png 6 181 1208 2021-11-01T18:06:44Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dorian-2.png 6 182 1209 2021-11-01T18:06:54Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dorian-3.png 6 183 1210 2021-11-01T18:07:01Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/Dorian 0 184 1211 2021-11-01T18:08:14Z Wizzup 4 Created page with "{{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/dorian |category=..." wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/dorian |category=[[Category:Education]] |packager=[[User:Wizzup]] }} == Status == Supports portrait mode as well as landscape, fullscreen mode. == Screenshots == <gallery widths=320px heights=173px> File:Dorian-1.png| File:Dorian-2.png| File:Dorian-3.png| </gallery> [[Category:Extras]] [[Category:Navigation]] c6ecc8ddce561d3f737a79f9bbd2d1c4344ed56e 1214 1211 2021-11-01T18:09:27Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/dorian |category=Category:Education |packager=[[User:Wizzup]] }} == Status == Supports portrait mode as well as landscape, fullscreen mode. == Screenshots == <gallery widths=320px heights=173px> File:Dorian-1.png| File:Dorian-2.png| File:Dorian-3.png| </gallery> [[Category:Extras]] [[Category:Education]] abdcdb504f2f35a8296967db2cdfa895e697beea 1216 1214 2021-11-01T18:11:08Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:Dorian256px.png|250px]] |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/dorian |category=Category:Education |packager=[[User:Wizzup]] }} == Status == Supports portrait mode as well as landscape, fullscreen mode. == Screenshots == <gallery widths=320px heights=173px> File:Dorian-1.png| File:Dorian-2.png| File:Dorian-3.png| </gallery> [[Category:Extras]] [[Category:Education]] 9bb64dc8a5bf9424e75ca923851ff09202dc022b 1223 1216 2021-11-01T18:20:17Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:Dorian256px.png|250px]] |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/dorian |category=Education |packager=[[User:Wizzup]] }} == Status == Supports portrait mode as well as landscape, fullscreen mode. == Screenshots == <gallery widths=320px heights=173px> File:Dorian-1.png| File:Dorian-2.png| File:Dorian-3.png| </gallery> [[Category:Extras]] eb6d8fbc1345e9dc997e23f7b73bacfefde49418 File:Dorian256px.png 6 185 1215 2021-11-01T18:10:58Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Template:Infobox Package 10 139 1217 1090 2021-11-01T18:17:43Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} | header9 = | label9 = Packager | data9 = {{{packager|}}} [[Category:Packages]] }} d95c81069ec9cb5a9c3953c2cb104609071eadbb 1219 1217 2021-11-01T18:18:44Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} | header9 = | label9 = Packager | data9 = {{{packager|}}} [[Category:Packages]] [[Category::{{{category}}}] }} bc99590087b82fe984ae0d74aa8c6e4d19e1becc 1220 1219 2021-11-01T18:19:04Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} | header9 = | label9 = Packager | data9 = {{{packager|}}} [[Category:Packages]] [[Category::{{{category}}}]] }} c6453774aaef34aa70ec77fbe1e23be6fc3933d5 1221 1220 2021-11-01T18:19:43Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = {{{category|}}} | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} | header9 = | label9 = Packager | data9 = {{{packager|}}} [[Category:Packages]] [[Category:{{{category}}}]] }} 2a2a26191a2cf3d02bd25d5d4962200142ec377e 1226 1221 2021-11-01T18:22:39Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = [[:Category:{{{category}}}]] | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} | header9 = | label9 = Packager | data9 = {{{packager|}}} [[Category:Packages]] [[Category:{{{category}}}]] }} fe64ddeb016a3700cfdfda6974614a262b283358 1227 1226 2021-11-01T18:23:06Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = [[:Category:{{{category}}}|{{{category}}}]] | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} | header9 = | label9 = Packager | data9 = {{{packager|}}} [[Category:Packages]] [[Category:{{{category}}}]] }} 176971c75655868c3e376acbdcdbbce3fff44f98 1228 1227 2021-11-01T18:23:53Z Wizzup 4 wikitext text/x-wiki {{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | caption = {{{caption|}}} | header2 = | label2 = Status | data2 = {{{status|}}} | header3 = | label3 = Devices | data3 = {{{devices|}}} | header4 = | label4 = Import date | data4 = {{{date_in_repo|}}} | header5 = | label5 = Website | data5 = {{{website|}}} | header6 = | label6 = Leste repo | data6 = {{{maemo_leste_repo|}}} | header7 = | label7 = Category | data7 = [[:Category:{{{category}}}]] | header8 = | label8 = Maintainer | data8 = {{{maintainer|}}} | header9 = | label9 = Packager | data9 = {{{packager|}}} [[Category:Packages]] [[Category:{{{category}}}]] }} fe64ddeb016a3700cfdfda6974614a262b283358 Calendar 0 109 1218 1121 2021-11-01T18:18:19Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/qalendar |category=user/office |packager=[[User:Wizzup]] }} = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == you can try this script it currently only syncs the calendar # Install syncevolution first via 'apt install syncevolution' # Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh # Open it and change the vars to reflect your server # Run it if that dosent work try the section below == Synchronising manually == Install: <pre> apt install syncevolution </pre> Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == Syncevolution-frontend == The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation. Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 d79714b54454d9fcde20e0c194647d6ebef407f8 1222 1218 2021-11-01T18:20:04Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/qalendar |category=Office |packager=[[User:Wizzup]] }} = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == you can try this script it currently only syncs the calendar # Install syncevolution first via 'apt install syncevolution' # Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh # Open it and change the vars to reflect your server # Run it if that dosent work try the section below == Synchronising manually == Install: <pre> apt install syncevolution </pre> Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you. For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use): <pre> ssh myhost -L 5223:localhost:5223 </pre> OK, so let's configure syncevolution and do the initial sync: <pre> syncevolution --configure \ --template webdav \ username=USER \ password=PASS \ syncURL=http://localhost:5223/ \ target-config@radicale syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavtodo \ target-config@radicale radicaletodo syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldavjournal \ target-config@radicale radicalejournal syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=caldav \ target-config@radicale radicalecal syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@radicale \ username= \ password= \ radicale syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ radicale radicaletodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ radicale radicalejournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ radicale radicalecal syncevolution --sync refresh-from-client radicale radicalejournal syncevolution --sync refresh-from-client radicale radicaletodo syncevolution --sync refresh-from-client radicale radicalecal </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale radicalejournal syncevolution --sync two-way radicale radicaletodo syncevolution --sync two-way radicale radicalecal </pre> == Syncevolution-frontend == The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation. Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 a2c1b294014f0ccae3b73f2f9b6dbe433bf836d5 Category:Packages 14 186 1230 2021-11-01T18:25:58Z Wizzup 4 Created page with "= Packages = This page lists packages that have their own wiki page, Maemo Leste contains far more packages than listed on this page. To search for the debian packages, cons..." wikitext text/x-wiki = Packages = This page lists packages that have their own wiki page, Maemo Leste contains far more packages than listed on this page. To search for the debian packages, consider using our pkgweb: https://maedevu.maemo.org/pkgweb/ 5c8427938feeef67dcb19b12cf33deebf6d1118f 1231 1230 2021-11-01T18:26:08Z Wizzup 4 wikitext text/x-wiki This page lists packages that have their own wiki page, Maemo Leste contains far more packages than listed on this page. To search for the debian packages, consider using our pkgweb: https://maedevu.maemo.org/pkgweb/ 80cf98a8b880f7501733255df29b76c000919e38 Extras/ScummVM 0 137 1232 1134 2021-11-01T18:29:14Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[File:ScummVM_Logo.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2021-05-21 |website=https://www.scummvm.org/ |maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm |category=Games |packager=[[User:Wizzup]] }} ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website) Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269 Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo == Status == * Games seems to be playable, with sound and input * GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI: [[File:Leste-scummvm-bigtheme.jpg|500px]] To get large readable GUI: <code>edit ~/.config/scummvm.ini change gui_base=0 to gui_base=240</code> === Tested games === Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1 ==== The Neverhood ==== Change keymap as appropriate, works well. [[File:ScummVMNeverhood.png|500px]] == TODO == * Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices) * Use libsdl2 build, didn't compile when [[User:Wizzup]] tried. * Revise Maemo-Leste configure backend/target to remove 'optification' * Create Widescreen readable theme * Fix touchscreen to pointer position de-synchronization. (Starts okay, goes bad). * Find rendering and build options for low battery use (adventure game sessions can be long) * Get Maemo-Leste target into upstream SCUMMVM [[Category:Extras]] 38713ed6f851e954abe2370bc4be0477bf4efee2 Extras/braek 0 147 1235 1096 2021-11-01T18:30:09Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |status=Working |devices=All |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/braek |packager=[[User:Wizzup]] |category=Games }} == Status == Seems to break the screen == Screenshots == [[File:BraekDroid4.png|500px]] [[Category:Extras]] 2154bbadb48fc13821c80e830a31904a539d496b Tor 0 168 1236 1181 2021-11-01T18:31:24Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo=2021-11-01 |maemo_leste_repo=https://github.com/maemo-leste/libicd-tor |category=Network |packager=[[User:Wizzup]] }} = Tor in Maemo Leste = [https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet. Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported. == Configuring Tor using the UI == In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings. Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort. == Obligatory word of warning == If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time. Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location. Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage. == Gallery == <gallery widths=320px heights=173px> TorAppMgr.png|Tor is installable from the application manager TorAppMgr2.png TorCheck.png|Checking system wide support TorProvider.png|Setting a per connection (IAP) Wireguard configuration TorProvider2.png| TorConnected.png|Tor is connected TorCPA.png|Tor control panel applet icon TorCPA2.png|Tor control panel, editing a configuration </gallery> [[Category:Extras]] db04b2b0a9a056f7385e4d65bc82ddb499001ddb Wireguard 0 153 1237 1182 2021-11-01T18:32:11Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo=2021-11-01 |maemo_leste_repo=https://github.com/maemo-leste/libicd-wireguard |category=Network |packager=[[User:Wizzup]] }} = Wireguard in Maemo Leste = [https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet. There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config. == Configuring Wireguard using the UI == In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers). Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems. === Using a config file === For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. (This may be replaced in the future, as the PostUp and such lines could potentially be edited by non-root users but run as root!) === Tunnelling all traffic over Wireguard === Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN. == Debugging == ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors. Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo). == Gallery == <gallery widths=320px heights=173px> WireguardAppMgr.png|Wireguard is installable from the application manager WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP) WireguardConnected.png|Wireguard is connected WireguardCPA.png|Wireguard control panel applet icon WireguardCPA2.png|Wireguard control panel, editing a configuration WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration </gallery> [[Category:Extras]] 2343e743f6231284144fe7ad034861f61748f37d Motorola Droid 4 0 50 1238 1148 2021-11-13T18:24:48Z Pavel 9 /* Phone Call */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] b985d1750dda44759c57ebdde0719963e7831a14 1243 1238 2021-11-28T18:49:05Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Flashing the boot logo ==== <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4 leste logo.jpg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] d93baa0620a509a38d02e1705dc42a7b0efe19e7 1244 1243 2021-11-28T18:49:55Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4 leste logo.jpg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 20c7ac1ada917d55ec365b71fbd4484e4db63ffb 1245 1244 2021-11-28T18:50:46Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 5b06e8c9696c7b62e6813beedce71dab4a1f679a Status/Phone 0 187 1239 2021-11-13T18:32:34Z Pavel 9 Created page with "= Devel repository = As of 11/2021, this is bleeding edge development. You need to switch to devel repositories which may break your system. To do that place deb https://maed..." wikitext text/x-wiki = Devel repository = As of 11/2021, this is bleeding edge development. You need to switch to devel repositories which may break your system. To do that place deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free into /etc/apt/sources.list and run sudo apt update. = Phone calls = Voice calls should be working, or close to working, on Motorola Droid 4. Ofonod is handling the modem, and it is configured and running by default. Modem is not enabled by default. enable-modem and online-modem scripts from ofono/test can be used to put modem online. sphone can be used as an UI to place and receive calls, it can be installed using sudo apt install sphone. e4ffe1ffb7bd7d55ce8690742e31b9edf925255f 1240 1239 2021-11-13T18:40:13Z Pavel 9 /* Devel repository */ wikitext text/x-wiki = Devel repository = As of 11/2021, this is bleeding edge development. You need to switch to devel repositories which may break your system. To do that append line <pre>deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free</pre> into /etc/apt/sources.list and run sudo apt update. = Phone calls = Voice calls should be working, or close to working, on Motorola Droid 4. Ofonod is handling the modem, and it is configured and running by default. Modem is not enabled by default. enable-modem and online-modem scripts from ofono/test can be used to put modem online. sphone can be used as an UI to place and receive calls, it can be installed using sudo apt install sphone. b2554fe96c8237cc877fb4de4245ebacc88d2f41 Nokia N900 0 48 1241 1135 2021-11-27T23:29:30Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch <pre> $ cat idlest.py """ 00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000 f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046 0000000d 48004a28 (f7aa95e6) cm_idlest3_core """ # 31 to 0 cm_idlest1_core_bits = [ 'RESERVED', 'ST_MMC3', 'ST_ICR', 'RESERVED', 'RESERVED', 'RESERVED', 'ST_MMC2', 'ST_MMC1', 'RESERVED', 'ST_HDQ', 'ST_MCSPI4', 'ST_MCSPI3', 'ST_MCSPI2', 'ST_MCSPI1', 'ST_I2C3', 'ST_I2C2', 'ST_I2C1', 'ST_UART2', 'ST_UART1', 'ST_GPT11', 'ST_GPT10', 'ST_MCBSP5', 'ST_MCBSP1', 'RESERVED', 'ST_MAILBOXES', 'ST_OMAPCTRL', 'ST_HSOTGUSB_IDLE', 'ST_HSOTGUSB_STDBY', 'RESERVED', 'ST_SDMA', 'ST_SDRC', 'RESERVED', ] cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits)) #inp = '0020c046' inp = '00208042' # after rmmod hci_nokia and hci_uart v = int(inp, 16) #print(v) b= "{0:b}".format(v) print((32-len(b))*'0' + b) for i in range(0, 32): is_set = (v & (1 << i)) >> i if is_set: print(cm_idlest1_core_bits[i]) </pre> == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] f08bcf4eac2a5fd29e6f2a337b9aab25acdeafe7 1242 1241 2021-11-28T14:00:56Z Wizzup 4 /* Power Management */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || Yes || TX only (hardware limitation). |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 392e0dcdd10b06b3f2a7d05d6a77ab4c149dbab1 Motorola Droid 3 0 151 1246 1191 2021-11-29T01:45:18Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * 3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 <s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> (Haven't seen them on 5.15) Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] 70afefaa3c459d019574d50d718fd50eaeb77bbb 1247 1246 2021-11-29T01:45:53Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 <s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> (Haven't seen them on 5.15) Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] 15543ef8d4ced33ef2b7498f44a332019d24ebff 1249 1247 2021-12-12T23:37:49Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.15.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 <s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> (Haven't seen them on 5.15) Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] 6106267169b99669a82269d6f6abe3317976538f Wishlist 0 89 1248 1149 2021-12-09T13:56:25Z Dsc 51 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |) |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. ef02ea3f2a3839ae7cc9ab2a49ce6700998ecbf2 1251 1248 2021-12-13T19:29:24Z Ashley 52 /* Applications */ rm superfluous column wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. e5ad0f5fc1e71e0ac3f2183d44314ee3922dd027 1252 1251 2021-12-13T19:31:52Z Ashley 52 /* Applications */ fix two links wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/ (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [https://www.foxtrotgps.org FoxtrotGPS] might be the easiest to adapt, it is already packaged in Devuan. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. 5990ea3ab18f6665ed8fcfd867354abcde713d4d 1294 1252 2022-05-30T04:34:08Z JvwN900 56 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/ (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || Yes || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || in Devuan repos |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [https://www.foxtrotgps.org FoxtrotGPS] might be the easiest to adapt, it is already packaged in Devuan and works well on the Pinephone at least. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. 16fd5ab208f43f662b7faea218c95aed5c7d3947 1295 1294 2022-06-03T18:43:34Z JvwN900 56 wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/ (has also Psycho Pinball installable) |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Yes || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ || in Devuan repos |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || Yes || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || in Devuan repos; "maemo5" UI style is currently broken |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [https://www.foxtrotgps.org FoxtrotGPS] might be the easiest to adapt, it is already packaged in Devuan and works well on the Pinephone at least. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. 73284c38c432bc65b8cd0d6b3937bb1bdd69455c User:Ashley 2 188 1250 2021-12-13T19:27:09Z Ashley 52 Created page with "I do stuff. Mostly with the [[mw:|MediaWiki]] software, though I'm certainly interested in mobile development as well. == Find me elsewhere == * [https://wiki.maemo.org/User:..." wikitext text/x-wiki I do stuff. Mostly with the [[mw:|MediaWiki]] software, though I'm certainly interested in mobile development as well. == Find me elsewhere == * [https://wiki.maemo.org/User:ashley wiki.maemo.org] * [[mw:User:Jack Phoenix|MediaWiki.org]] * [https://wiki.postmarketos.org/wiki/User:Ashley PostmarketOS wiki] * [https://github.com/mary-kate GitHub] 78dd1a395088c251f1ca07f7334048670df07a10 PinePhone 0 93 1253 940 2022-01-03T00:09:23Z Venji10 46 Fix grammar wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20200223 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections ''' TODO mention/link to:''' * USB peripheral * Develop for Maemo Leste and work on applications that interface with modems * Make it work on latest pine64 kernel ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shown (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] 2f7e4bdd5e29026df6b98ae2de972e5a09bc4323 1268 1253 2022-02-12T15:39:25Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shown (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] b8e7bd9f6cb64b1a661b7cbe8f68494b21ed51ec 1269 1268 2022-02-12T15:40:01Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!) * Many "games" packages in the Application Manager don't work well yet. * For some reason the X cursor is still shown (usually it's hidden) * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] 626dfcce3ff350cdf3e14d7fa6ae40b70ea184c7 1270 1269 2022-02-12T15:41:12Z Rafael2k 54 going ahead with updating pinephone support, which improved a lot recently... wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || ? || |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || N/A || ! |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default |- | Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] ed0574729c3d74d963b15c8a1dd147a4d3c960d5 1271 1270 2022-02-12T15:44:00Z Rafael2k 54 Added telephony support status wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; calls and SMS work with sphone. Work still underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76 |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available |- | Phone calls || YES || Works with ofono, sphone as UI |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] 3e48f70cf5c408ec45c3ac5ea0ee96d0f1eec5b8 1272 1271 2022-02-12T15:45:49Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available |- | Phone calls || YES || Works with ofono; Calls and SMS work with sphone as UI |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] f379449c7fa4b63b7cc547dd817d183e24ee7dd6 1273 1272 2022-02-12T15:46:22Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] b32b93323737ba1045a00bc8996f57e075f4984f Motorola Droid 4 0 50 1254 1245 2022-01-05T18:19:06Z Exomnium 53 Added instructions regarding how to get the OK key to function correctly wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 54de80f6504ad8332320180fd212698eb53fc494 1255 1254 2022-01-07T15:06:21Z Sicelo 5 /* Stuff to try */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.11.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Using a battery without built-in sensors ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 81f9877be48808efbc6c8b6fdfba95268b9d1365 1265 1255 2022-02-07T00:12:02Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.15.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Using a battery without built-in sensors ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== Wifi ==== The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed. Install necessary tools: <pre> apt-get install ti-utils-wilink6 droid4-wlanconfig </pre> Run calibration: <pre> sudo maserati-calibrate </pre> ==== Phone Call ==== These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone. Run this: Read modem output: <pre> cat /dev/motmdm1 & </pre> Online modem: <pre> printf "AT+CFUN=1\r" > /dev/motmdm1 </pre> Connect to network: <pre> printf "AT+COPS=1\r" > /dev/motmdm1 </pre> Print connected network: </pre> printf "AT+COPS?\r" > /dev/motmdm1 Turn off signal reporting: <pre> # printf "AT+SCRN=0\r" > /dev/motmdm1 </pre> Dial a number: <pre> printf "ATD+1234567890\r" > /dev/motmdm1 </pre> Hang up: <pre> printf "ATH\r" > /dev/motmdm1 </pre> Answer incoming call: <pre> printf "ATA\r" > /dev/motmdm1 </pre> Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired. ==== 3G Internet ==== Using qmicli: qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz route del default sudo ifconfig wwan0 up dhclient wwan0 Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed. ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] e837e108c075f952763e77eb1296f4c8d182274f 1278 1265 2022-03-12T12:15:41Z Sicelo 5 Removed manual modem/gps methods, wifi calibration, add torch wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.15.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. ==== Torch ===== The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below): <source> ##Install the prerequisites $ sudo apt install i2c-tools ## Turn LED on in torch mode $ sudo i2cset -y 2 0x53 0x10 0x1a ## Turn LED on in privacy indication mode $ sudo i2cset -y 2 0x53 0x10 0x19 ## Turn LED off (in any mode) $ sudo i2cset -y 2 0x53 0x10 0x18 </source> == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 31ce4dd795deeb0d3c5ad38771716b5b6d3ae539 1279 1278 2022-03-12T12:16:43Z Sicelo 5 /* Torch = */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.15.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. ==== Torch ==== The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below): <source> ##Install the prerequisites $ sudo apt install i2c-tools ## Turn LED on in torch mode $ sudo i2cset -y 2 0x53 0x10 0x1a ## Turn LED on in privacy indication mode $ sudo i2cset -y 2 0x53 0x10 0x19 ## Turn LED off (in any mode) $ sudo i2cset -y 2 0x53 0x10 0x18 </source> == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 5a20cc05af63c2016973e6bd5adb616fbd2933c4 1286 1279 2022-05-04T21:20:20Z BuZz 32 /* Torch */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.15.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. ==== Torch ==== The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below): <source> ##Install the prerequisites $ sudo apt install i2c-tools ## Turn LED on in torch mode $ sudo i2cset -y 2 0x53 0x10 0x1a ## Turn LED on in privacy indication mode $ sudo i2cset -y 2 0x53 0x10 0x19 ## Turn LED off (in any mode) $ sudo i2cset -y 2 0x53 0x10 0x18 ## Use LED for doing a hella bright flash for some time once and then turn off $ sudo i2cset -y 2 0x53 0x10 0x1b </source> == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] d01ceb77a35aec4f22a5ad9f77a762539b4e8ad3 User:Wizzup/Telepathy 2 189 1256 2022-01-11T11:24:26Z Wizzup 4 Created page with "= Telepathy notes = This page contains my (personal) notes on how Telepathy works, in general, and how it works on Fremantle, and how we plan to make it all work." wikitext text/x-wiki = Telepathy notes = This page contains my (personal) notes on how Telepathy works, in general, and how it works on Fremantle, and how we plan to make it all work. ebd80beb82cf234e10fda154514c8055d2180cc9 1257 1256 2022-01-11T11:49:03Z Wizzup 4 /* Telepathy notes */ wikitext text/x-wiki = Telepathy notes = This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work. == Accounts == Accounts are stored in `/home/user/.rtcom-accounts/accounts.cfg` on Fremantle, and `HOME/.local/share/telepathy/mission-control/accounts.cfg` normally in Telepathy. It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and `mc-tool` can be used to manage the accounts. This means that likely there are no other tools that read "accounts.cfg" on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC. === telepathy-ring accounts === It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially. == SMS == telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device: <pre> [ring/tel/ring] manager=ring protocol=tel param-account=ring Enabled=true HasBeenOnline=true ConnectAutomatically=true AutomaticPresenceType=2 AutomaticPresenceStatus=available Profile=tel NormalizedName=<SelfHandle> </pre> <code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something. == Fremantle (rtcom) == b46392bac24486d890361eeb5c34247883a5d530 1258 1257 2022-01-11T11:49:31Z Wizzup 4 /* Telepathy notes */ wikitext text/x-wiki = Telepathy notes = This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work. == Accounts == Accounts are stored in `/home/user/.rtcom-accounts/accounts.cfg` on Fremantle, and `HOME/.local/share/telepathy/mission-control/accounts.cfg` normally in Telepathy. It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and `mc-tool` can be used to manage the accounts. This means that likely there are no other tools that read "accounts.cfg" on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC. === telepathy-ring accounts === It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially. == SMS == telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device: <pre> [ring/tel/ring] manager=ring protocol=tel param-account=ring Enabled=true HasBeenOnline=true ConnectAutomatically=true AutomaticPresenceType=2 AutomaticPresenceStatus=available Profile=tel NormalizedName=<SelfHandle> </pre> <code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something. == Fremantle (rtcom) == == Further reading == * https://www.aosabook.org/en/telepathy.html 1738da7593a9e7647a384c8c4a42a20431a816ef 1259 1258 2022-01-11T11:50:07Z Wizzup 4 /* Telepathy notes */ wikitext text/x-wiki = Telepathy notes = This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work. == Accounts == Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy. It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC. === telepathy-ring accounts === It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially. == SMS == telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device: <pre> [ring/tel/ring] manager=ring protocol=tel param-account=ring Enabled=true HasBeenOnline=true ConnectAutomatically=true AutomaticPresenceType=2 AutomaticPresenceStatus=available Profile=tel NormalizedName=<SelfHandle> </pre> <code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something. == Fremantle (rtcom) == == Further reading == * https://www.aosabook.org/en/telepathy.html e7b916d91cba815d4ea5628170b484449e3263c0 1260 1259 2022-01-11T11:56:42Z Wizzup 4 /* Telepathy notes */ wikitext text/x-wiki This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work. = Accounts = Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy. It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC. == telepathy-ring accounts == It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially. = SMS = telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device: <pre> [ring/tel/ring] manager=ring protocol=tel param-account=ring Enabled=true HasBeenOnline=true ConnectAutomatically=true AutomaticPresenceType=2 AutomaticPresenceStatus=available Profile=tel NormalizedName=<SelfHandle> </pre> <code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something. = Fremantle (rtcom) = = Further reading = * https://www.aosabook.org/en/telepathy.html f8c9702d9084e3ac6c2a334d93a839209ad78256 1261 1260 2022-01-11T12:13:19Z Wizzup 4 wikitext text/x-wiki This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work. = Accounts = Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy. It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC. == telepathy-ring accounts == It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially. = Logging = Fremantle logs using the <code>rtcom-eventlogger</code> package, to a SQLite3 database stored at <code>/home/user/.rtcom-eventlogger/el-v1.db</code> - all communication related events end up here. The actual logging to the database is done (as far as I understand) by several different processes: <code>rtcom-call-ui</code> and <code>rtcom-messaging-ui</code>. These both interface with telepathy and log to the database as appropriate. (This is visible by looking at <code>/proc/pid-of-program/fd</code> on Fremantle - it will show that both programs have a fd open to the database) Telepathy does come with a program called "Telepathy Logger" which can log to various database formats (and I guess just log all messages), and it also provides a way to read (not just write) log events. I am not sure if this is useful for us, but we could take a look later. For now, I believe our replacement programs for the call and messaging UI will have to log on their own. = SMS = telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device: <pre> [ring/tel/ring] manager=ring protocol=tel param-account=ring Enabled=true HasBeenOnline=true ConnectAutomatically=true AutomaticPresenceType=2 AutomaticPresenceStatus=available Profile=tel NormalizedName=<SelfHandle> </pre> <code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something. = Presence and online accounts = <todo> = Fremantle (rtcom) = = Further reading = * Nice resource on telepathy architecture: https://www.aosabook.org/en/telepathy.html * rtcom-eventlogger API docs: http://maemo.org/api_refs/5.0/5.0-final/eventlogger/ b58ff5168f321a3f49cc429e019f2261b8beb58f 1262 1261 2022-01-13T17:09:45Z Wizzup 4 wikitext text/x-wiki This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work. = Accounts = Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy. It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC. == telepathy-ring accounts == It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially. = Logging = Fremantle logs using the <code>rtcom-eventlogger</code> package, to a SQLite3 database stored at <code>/home/user/.rtcom-eventlogger/el-v1.db</code> - all communication related events end up here. The actual logging to the database is done (as far as I understand) by several different processes: <code>rtcom-call-ui</code> and <code>rtcom-messaging-ui</code>. These both interface with telepathy and log to the database as appropriate. (This is visible by looking at <code>/proc/pid-of-program/fd</code> on Fremantle - it will show that both programs have a fd open to the database) Telepathy does come with a program called "Telepathy Logger" which can log to various database formats (and I guess just log all messages), and it also provides a way to read (not just write) log events. I am not sure if this is useful for us, but we could take a look later. For now, I believe our replacement programs for the call and messaging UI will have to log on their own. = SMS = telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device: <pre> [ring/tel/ring] manager=ring protocol=tel param-account=ring Enabled=true HasBeenOnline=true ConnectAutomatically=true AutomaticPresenceType=2 AutomaticPresenceStatus=available Profile=tel NormalizedName=<SelfHandle> </pre> <code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something. = Presence and online accounts = <todo> = Fremantle (rtcom) = = Plan = == Telepathy basics for SMS == I think the first step is to make basic Telepathy things work in conversations, this entails manually setting up a sms account using mc-tool and then trying to use it from telepathy-qt: for sending and receiving messages. This probably entails: * Setting up an account manager, finding the ring account * Creating a connection from the ring account and making sure it is "ready" / "online" * Setting up signals for receving messages, and adding a method to send a message * Creating some code class for the above, so that it can be integrated in Conversations * Conversations to always run (?) And then look at integrating this in conversations. == Basic logging == This next step will involve logging sent and received SMS messages to rtcom-eventlogger and further osso-abook integration. We should be able to figure out what contact is who in osso-abook and make sure we log that properly as well. This probably entails: * Integrating rtcom-eventlogger in Qt/C++ * Looking at (more) name resolving with osso-abook (might be in rtcom-eventlogger library already) == Extend to IRC, XMPP == This step will require some global notion of if the device is "online" mode (like in Maemo Fremantle). We can set up IRC and XMPP accounts and try use them for messaging as well, and also log to rtcom-eventlogger. We won't worry here yet with showing which of the contacts are 'online'. * telepathy-idle * telepathy-gabble == To plan == * If phone is in offline mode, we cannot send SMSes * If phone is in non-online mode (for irc, xmpp, etc), then we can't send messages for those protocols = Further reading = * Nice resource on telepathy architecture: https://www.aosabook.org/en/telepathy.html * rtcom-eventlogger API docs: http://maemo.org/api_refs/5.0/5.0-final/eventlogger/ 1063a92e42ca0c581677ee6233739173f09e1f33 1263 1262 2022-01-19T00:16:13Z Wizzup 4 wikitext text/x-wiki This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work. = Accounts = Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy. It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC. == telepathy-ring accounts == It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially. = Logging = Fremantle logs using the <code>rtcom-eventlogger</code> package, to a SQLite3 database stored at <code>/home/user/.rtcom-eventlogger/el-v1.db</code> - all communication related events end up here. The actual logging to the database is done (as far as I understand) by several different processes: <code>rtcom-call-ui</code> and <code>rtcom-messaging-ui</code>. These both interface with telepathy and log to the database as appropriate. (This is visible by looking at <code>/proc/pid-of-program/fd</code> on Fremantle - it will show that both programs have a fd open to the database) Telepathy does come with a program called "Telepathy Logger" which can log to various database formats (and I guess just log all messages), and it also provides a way to read (not just write) log events. I am not sure if this is useful for us, but we could take a look later. For now, I believe our replacement programs for the call and messaging UI will have to log on their own. = SMS = telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device: <pre> [ring/tel/ring] manager=ring protocol=tel param-account=ring Enabled=true HasBeenOnline=true ConnectAutomatically=true AutomaticPresenceType=2 AutomaticPresenceStatus=available Profile=tel NormalizedName=<SelfHandle> </pre> <code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something. = Presence and online accounts = <todo> = Fremantle (rtcom) = TODO: * discuss various other rtcom components/packages (rtcom notification plugin, rtcom presence plugin) * rtcom accounts ui, how that works * discuss how presence works = Telepathy-Qt = Looks like the right way to use telepathy-qt API is to already have accounts created in Telepathy (use mc-tool or some UI). Then the AccountManager class can be used to get access to the Account classes (or you can make an account class directly from a D-Bus path). Setting the account presence and it's connection state, and then calling reconnect on the accounts will bring them online. At this point, using a SimpleTextObserver can be used to monitoring incoming and outgoing messages. TODO: * Expand on many more classes, which ones are useful and how to use them = Plan = == Telepathy basics for SMS == I think the first step is to make basic Telepathy things work in conversations, this entails manually setting up a sms account using mc-tool and then trying to use it from telepathy-qt: for sending and receiving messages. This probably entails: * Setting up an account manager, finding the ring account * Creating a connection from the ring account and making sure it is "ready" / "online" * Setting up signals for receving messages, and adding a method to send a message * Creating some code class for the above, so that it can be integrated in Conversations * Conversations to always run (?) And then look at integrating this in conversations. == Basic logging == This next step will involve logging sent and received SMS messages to rtcom-eventlogger and further osso-abook integration. We should be able to figure out what contact is who in osso-abook and make sure we log that properly as well. This probably entails: * Integrating rtcom-eventlogger in Qt/C++ * Looking at (more) name resolving with osso-abook (might be in rtcom-eventlogger library already) == Extend to IRC, XMPP == This step will require some global notion of if the device is "online" mode (like in Maemo Fremantle). We can set up IRC and XMPP accounts and try use them for messaging as well, and also log to rtcom-eventlogger. We won't worry here yet with showing which of the contacts are 'online'. * telepathy-idle * telepathy-gabble == To plan == * If phone is in offline mode, we cannot send SMSes * If phone is in non-online mode (for irc, xmpp, etc), then we can't send messages for those protocols = Further reading = * Nice resource on telepathy architecture: https://www.aosabook.org/en/telepathy.html * rtcom-eventlogger API docs: http://maemo.org/api_refs/5.0/5.0-final/eventlogger/ 9dcb1c3e179253d4925a749ae263f7ce542390d1 1264 1263 2022-02-06T11:51:10Z Wizzup 4 wikitext text/x-wiki This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work. = Accounts = Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy. It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC. == telepathy-ring accounts == It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially. = Logging = Fremantle logs using the <code>rtcom-eventlogger</code> package, to a SQLite3 database stored at <code>/home/user/.rtcom-eventlogger/el-v1.db</code> - all communication related events end up here. The actual logging to the database is done (as far as I understand) by several different processes: <code>rtcom-call-ui</code> and <code>rtcom-messaging-ui</code>. These both interface with telepathy and log to the database as appropriate. (This is visible by looking at <code>/proc/pid-of-program/fd</code> on Fremantle - it will show that both programs have a fd open to the database) Telepathy does come with a program called "Telepathy Logger" which can log to various database formats (and I guess just log all messages), and it also provides a way to read (not just write) log events. I am not sure if this is useful for us, but we could take a look later. For now, I believe our replacement programs for the call and messaging UI will have to log on their own. = SMS = telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device: <pre> [ring/tel/ring] manager=ring protocol=tel param-account=ring Enabled=true HasBeenOnline=true ConnectAutomatically=true AutomaticPresenceType=2 AutomaticPresenceStatus=available Profile=tel NormalizedName=<SelfHandle> </pre> <code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something. = Presence and online accounts = <todo> = Fremantle (rtcom) = TODO: * discuss various other rtcom components/packages (rtcom notification plugin, rtcom presence plugin) * rtcom accounts ui, how that works * discuss how presence works = Telepathy-Qt = Looks like the right way to use telepathy-qt API is to already have accounts created in Telepathy (use mc-tool or some UI). Then the AccountManager class can be used to get access to the Account classes (or you can make an account class directly from a D-Bus path). Setting the account presence and it's connection state, and then calling reconnect on the accounts will bring them online. At this point, using a SimpleTextObserver can be used to monitoring incoming and outgoing messages. TODO: * Expand on many more classes, which ones are useful and how to use them = Plan = == Telepathy basics for SMS == I think the first step is to make basic Telepathy things work in conversations, this entails manually setting up a sms account using mc-tool and then trying to use it from telepathy-qt: for sending and receiving messages. This probably entails: * Setting up an account manager, finding the ring account * Creating a connection from the ring account and making sure it is "ready" / "online" * Setting up signals for receving messages, and adding a method to send a message * Creating some code class for the above, so that it can be integrated in Conversations * Conversations to always run (?) And then look at integrating this in conversations. == Basic logging == This next step will involve logging sent and received SMS messages to rtcom-eventlogger and further osso-abook integration. We should be able to figure out what contact is who in osso-abook and make sure we log that properly as well. This probably entails: * Integrating rtcom-eventlogger in Qt/C++ * Looking at (more) name resolving with osso-abook (might be in rtcom-eventlogger library already) == Extend to IRC, XMPP == This step will require some global notion of if the device is "online" mode (like in Maemo Fremantle). We can set up IRC and XMPP accounts and try use them for messaging as well, and also log to rtcom-eventlogger. We won't worry here yet with showing which of the contacts are 'online'. * telepathy-idle * telepathy-gabble = rtcom = We''ll want to (need to?) reverse engineer (in order of dependencies, not necessarily order we should stick to): * librtcom-accounts-ui-client0 (14KB) * libaccounts (32KB) * librtcom-accounts-widgets0 (108KB) (wants librtcom-accounts-ui-client) * rtcom-accounts-ui (32KB) * rtcom-accounts-voip-support * rtcom-presence-ui (76KB + 6.7KB) (wants librtcom-accounts-ui-client, libmcclient.so.6) * rtcom-notification-ui (208KB) (wants librtcom-accounts-ui-client.so.0, librtcom-el-plugin-call.so.1, librtcom-el-plugin-sms.so.1, librtcom-el-plugin-chat.so.1) And there are various accounts plugins, we can probably just recreate those: * rtcom-accounts-plugin-sip (18KB) (wants librtcom-accounts-ui-client.so.0, libaccounts.so.0, libmcclient.so.6, librtcom-accounts-widgets.so.0) * rtcom-accounts-plugin-facebook * rtcom-accounts-plugin-gtalk (FOSS: https://github.com/community-ssu/rtcom-accounts-plugin-gtalk) * rtcom-accounts-plugin-jabber * rtcom-accounts-plugin-nokiachat == To plan == * If phone is in offline mode, we cannot send SMSes * If phone is in non-online mode (for irc, xmpp, etc), then we can't send messages for those protocols = Further reading = * Nice resource on telepathy architecture: https://www.aosabook.org/en/telepathy.html * rtcom-eventlogger API docs: http://maemo.org/api_refs/5.0/5.0-final/eventlogger/ cb0324914fe9455d3071021bf49ee91fe6a46824 Motorola Droid Bionic 0 111 1266 1138 2022-02-07T00:12:24Z Wizzup 4 update kernel wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa XT875 |dimensions=127x67.3x12.7mm |release_date=2011-09-8 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.15.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> <pre> 22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly </pre> == Stuff to try == ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] df6131f9f21b83f2c90b0cac283b80ae2b02b14f Main Page 0 1 1267 1185 2022-02-12T15:36:27Z Rafael2k 54 wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. *Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] *Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] *Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] *Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] *Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ *Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] *Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) *Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) *Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] *Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] *RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] *[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 1b6f72c4345dfe19a3725a77ed5553186ad29727 Nokia N900 0 48 1274 1242 2022-02-27T15:24:03Z Sicelo 5 /* Old status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 1c70a9b5c575f3e63235eeebc22d094cec75c9ba 1275 1274 2022-02-27T15:24:44Z Sicelo 5 /* Old status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them Also see: https://elinux.org/N900 == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] bcf8c075bb1919c127369ed4eb42abb0f3782e10 1276 1275 2022-03-12T11:42:58Z Sicelo 5 /* Notes */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 448f41155392cadb118e0b9f404d046e93cffa6f 1277 1276 2022-03-12T11:52:21Z Sicelo 5 /* Torch */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 43435bdce2ded455797e749e2952223dc5413d83 User:Wizzup/Jenkins 2 190 1280 2022-04-28T08:34:21Z Wizzup 4 Created page with "Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just..." wikitext text/x-wiki Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just did it that way before). {{{ apt install default-jre-headless apt install jenkins-debian-glue jenkins-debian-glue-buildenv-devuan apt purge exim4-base exim4-config exim4-daemon-light apt --purge autoremove apt install ntp useradd -m -s /bin/bash jenkins passwd jenkins su - jenkins # add key apt install sudo sudo vi /etc/sudoers # allow passwordless sudo for sudo group gpasswd -a jenkins sudo }}} Also copy over /etc/jenkins from one of the existing nodes, specifically for the debian glue config, see below. Then add it to Jenkins as a node (I just copied an existing node and changed the host/ip). Then run a build, it will likely fail, because our keys are not yet added to the pbuilder environment that just got created during the first build. Add it like so: {{{ cd /var/cache/pbuilder/base-beowulf-arm*.cow wget https://maedevu.maemo.org/extras-key.asc wget https://maedevu.maemo.org/testing-key.asc chroot /var/cache/pbuilder/base-beowulf-arm*.cow apt install gnupg1 apt-key add < extras-key.asc apt-key add < testing-key.asc rm *.asc exit cd - }}} e61de1048da1f5881eb3d8085c465c21562f1083 1281 1280 2022-04-28T08:36:38Z Wizzup 4 wikitext text/x-wiki Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just did it that way before). <pre> apt install default-jre-headless apt install jenkins-debian-glue jenkins-debian-glue-buildenv-devuan apt purge exim4-base exim4-config exim4-daemon-light apt --purge autoremove apt install ntp useradd -m -s /bin/bash jenkins passwd jenkins su - jenkins # add key apt install sudo sudo vi /etc/sudoers # allow passwordless sudo for sudo group gpasswd -a jenkins sudo </pre> Also copy over /etc/jenkins from one of the existing nodes, specifically for the debian glue config, see below. Then add it to Jenkins as a node (I just copied an existing node and changed the host/ip). Then run a build, it will likely fail, because our keys are not yet added to the pbuilder environment that just got created during the first build. Add it like so: <pre> cd /var/cache/pbuilder/base-beowulf-arm*.cow wget https://maedevu.maemo.org/extras-key.asc wget https://maedevu.maemo.org/testing-key.asc chroot /var/cache/pbuilder/base-beowulf-arm*.cow apt install gnupg1 apt-key add < extras-key.asc apt-key add < testing-key.asc rm *.asc exit cd - </pre> /etc/jenkins/pbuilderrc: <pre> MIRRORSITE="http://pkgmaster.devuan.org/merged/" COMPONENTS="main contrib non-free" DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/devuan-keyring.gpg" "--no-merged-usr") PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-apt EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring" AUTOCLEANAPTCACHE=yes if [[ $ARCH == arm* ]] ; then EXTRAPACKAGES="$EXTRAPACKAGES pinthread" export LD_PRELOAD="$LD_PRELOAD /usr/lib/pinthread.so" export PINTHREAD_CORE=0 fi </pre> /etc/jenkins/debian_glue: <pre> # Example configuration file for the jenkins-debian-glue software. # Install this file as /etc/jenkins/debian_glue to enable it. # Set GnuPG ID that should be used for signing the reprepro repository. # If you build packages for Squeeze your reprepro repositories *MUST* be # signed and the keyring that holds the public key (REPOSITORY_KEYRING) # must be set. # Expected format: DEADBEEF if [ "$release" = "leste" ]; then KEY_ID=4AA81E3E026EFE82E47D6901545FEC4E0927F6FD else # extras KEY_ID=89F632F52BFE13EBBB2EBD0D2700BD8E6604EC2E fi # If TRUNK_RELEASE is set then the package(s) of the repository # receiving the packages that are built will be copied to the # repository specified in TRUNK_RELEASE. This provides the option # to have all recent versions of packages in a central repository. # TRUNK_RELEASE='release-trunk' # If packages are build for more than one architecture you can # decide which architecture should build the "Architecture: all" # packages. On all other architectures only the arch specific # packages will be build then. # If unset it will default to the architecture of the host system. MAIN_ARCHITECTURE="amd64" # Hook scripts for pbuilder/cowbuilder, used e.g. for autopkgtest. # Default: # PBUILDER_HOOKDIR=/usr/share/jenkins-debian-glue/pbuilder-hookdir/ # To enable a pbuilder configuration file for usage as documented # in man pbuilder(8) under --configfile set this option. # By default no user specific pbuilder configuration file is used. # PBUILDER_CONFIG=/etc/jenkins/pbuilderrc # Base directory for reprepro repositories, can be overwritten # via REPOSITORY on demand # Default: DEFAULT_REPOSITORY='/srv/repository' # In order to keep the build versions unique and to ensure that there # are no duplicates, the version number from the changelog is padded # with the date and the build number. # To override this behaviour and preserve the version number from the # changelog, set USE_ORIG_VERSION to true. USE_ORIG_VERSION=true SKIP_DCH=true DCH_OPTS="--multimaint-merge --ignore-branch" #DCH_EXTRA_OPTS="--distribution=maemo7 --force-distribution -R" #DCH_EXTRA_OPTS=" #maybe? line 103 in /usr/bin/generate-git-snapshot UNRELEASEAD_APPEND_COMMIT="false" # By default reprepro repositories are not verified but assumed to be # trustworthy. # Please note that if you build packages for Squeeze, the reprepro # repositories *MUST* be signed and verifiable. I.e. you need to set # KEY_ID and the corresponding keyring in REPOSITORY_KEYRING that # holds the public key portion for that KEY_ID. # REPOSITORY_KEYRING=/etc/apt/trusted.gpg.d/my-custom-keyring.gpg REPOSITORY_KEYRING=/var/lib/jenkins/.gnupg/keyring.gpg #release=${release:-kawai} #REPOSITORY=/srv/repository # If $release is set then "${REPOSITORY}/release/${release}" # is used as release repository. If you want to use a different # directory set RELEASE_REPOSITORY accordingly. # Default: # RELEASE_REPOSITORY="${REPOSITORY}/release/${release}" RELEASE_REPOSITORY="${DEFAULT_REPOSITORY}/${release}" # Remove packages from a $release before processing incoming # This allows to rebuild and provide versions already existent # in the release repository they are built for. # Default: # REMOVE_FROM_RELEASE=false # By default the underlying build system (cowbuilder/pbuilder) # automatically destroys the build environment, even if building # fails for whatever reason. If DEB_KEEP_BUILD_ENV is set then # a copy of the build environment is created under # /var/cache/pbuilder/build/debug.$JOBNAME # Please be aware that those build environments usually require # quite some disk space, so do not forget to remove them. # If unset the build environment won't be kept if building fails. # DEB_KEEP_BUILD_ENV=true # Comma separated list of extra repositories for resolving dependencies. # Usage example: # REPOSITORY_EXTRA='deb http://security.debian.org/ wheezy/updates main,deb-src http://security.debian.org/ wheezy/updates main' # Default: # REPOSITORY_EXTRA= PARENT_DISTRO= DEVUAN_BUILD= case "$distribution" in stretch*) PARENT_DISTRO=ascii ;; buster*) PARENT_DISTRO=beowulf ;; bullseye*) PARENT_DISTRO= ;; bookworm*) PARENT_DISTRO= ;; *) DEVUAN_BUILD=1 esac if [ -z "$DEVUAN_BUILD" ]; then # Debian MIRROR="http://deb.debian.org/debian" SECURITY_MIRROR="http://security.debian.org/debian-security" SECURITY_FOLDER="${distribution}/updates" # This option is needed for pbuilder to work nice in Devuan environment PBUILDER_CONFIG=/etc/jenkins/debian_mirror # Initialize it with command: # echo 'MIRRORSITE=http://deb.debian.org/debian' > /etc/jenkins/debian_mirror else # Devuan MIRROR="http://pkgmaster.devuan.org/merged" SECURITY_MIRROR="${MIRROR}" SECURITY_FOLDER="${distribution}-security" fi REPOSITORY_EXTRA="deb ${MIRROR} ${distribution}-updates main contrib non-free" REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb ${SECURITY_MIRROR} ${SECURITY_FOLDER} main contrib non-free" REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} main contrib non-free" # Pull in deps from -devel when building -devel if [ "$ENABLE_MAEMO_DEVEL" = "yes" ]; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-devel main contrib non-free" fi if [ "$ENABLE_MAEMO_EXPERIMENTAL" = "yes" ]; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-experimental main contrib non-free" fi # Pull in deps from the main repo when building extras if [ "$release" = "extras" ]; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${distribution} main contrib non-free" fi # Pull in deps from main repo when building for Debian if [ -n "$PARENT_DISTRO" ]; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${PARENT_DISTRO} main contrib non-free" fi # Device specifics backports_jobs="mesa" #n900_jobs="libmatchbox2-n900 hildon-desktop-n900" echo "job_name: $JOB_NAME" case "$JOB_NAME" in *-source) _curpkgname="$(echo $JOB_NAME | sed 's,-source$,,')" ;; *-binaries/*) _curpkgname="$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-binaries$,,')" ;; *-repos/*) _curpkgname="$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-repos$,,')" ;; *) _curpkgname="irrelevant" ;; esac if echo "$backports_jobs" | grep -qw "$_curpkgname"; then case "$distribution" in ascii*|stretch*|beowulf*|buster*) REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb ${MIRROR} ${distribution}-backports main contrib non-free" ;; esac fi #if echo "$n900_jobs" | grep -qw "$_curpkgname"; then # REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} n900" #fi droid4_jobs="pvr-omap4" if echo "$droid4_jobs" | grep -qw "$_curpkgname"; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} droid4" fi network_jobs="pine64-uboot zkgroup signald anbox-image" if echo "$network_jobs" | grep -qw "$_curpkgname"; then PBUILDER_USENETWORK=yes fi # Comma separated list of URLs with keys for extra repositories. # Usage example: # REPOSITORY_EXTRA_KEYS='http://foorepo.domain.com/key1.gpg,http://barrepo.domain.com/key2.gpg' # Default: # REPOSITORY_EXTRA_KEYS= REPOSITORY_EXTRA_KEYS='http://maedevu.maemo.org/testing-key.asc,http://maedevu.maemo.org/extras-key.asc' # autopkgtests are executed automatically inside the cowbuilder environment by # default, corresponding to the ADT='internal' setting or if ADT is unset. # To execute autopkgtests also externally via adt-run you need to set ADT to # either 'external' (no internal runs) or 'all' (internal + external runs). # The external autopkgtests depend on a configured ADT_RUNNER setting. # To skip internal as well as external autopkgtests set ADT='skip'. # Usage example (see adt-virt-qemu(1) for details regarding image setup): # ADT='external' # ADT_RUNNER="adt-virt-qemu /srv/adt-${distribution:-}-${architecture:-}.img" # Default: # ADT= # Control usage of eatmydata to speed up builds. If eatmydata is present on the # host system and when building for a recent distribution (Debian/jessie + # Ubuntu/vivid or newer) eatmydata is enabled automatically. # To force its usage (skipping any host + distribution checks) set it to 'true'. # To disable its usage set it to 'false'. # USE_EATMYDATA=true # Enable ccache (compiler cache for fast recompilation of C/C++ code) # to speed up builds. USE_CCACHE=true # Specify the format (as accepted by the 'date' command) for the generated # build timestamp. # Default: %Y%m%d%H%M%S # TIMESTAMP_FORMAT="%Y%m%d%H%M%S" # In case you are explicitly marking your new package version as "UNRELEASED" # inside the debian/changelog file, you may not get a package build version # number containing the SCM commit. Set this to 'true' in order to work around # this. # Default: false # UNRELEASED_APPEND_COMMIT=false </pre> 00a01a129a4a74345b10027c75a9e7a7a3f12fb9 1282 1281 2022-04-28T08:55:43Z Wizzup 4 wikitext text/x-wiki Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just did it that way before). <pre> apt install default-jre-headless apt install jenkins-debian-glue jenkins-debian-glue-buildenv-devuan apt purge exim4-base exim4-config exim4-daemon-light apt --purge autoremove apt install ntp useradd -m -s /bin/bash jenkins passwd jenkins su - jenkins # add ssh pub key from jenkins master to .ssh/authorized_keys apt install sudo sudo vi /etc/sudoers # allow passwordless sudo for sudo group gpasswd -a jenkins sudo </pre> Also, this might not be necessary, but one could add this: <pre> # cat /etc/sudoers.d/jenkins jenkins ALL=NOPASSWD: /usr/sbin/cowbuilder, /usr/sbin/chroot, /bin/chmod, /bin/rm, /bin/mv, /bin/cat Defaults env_keep+="DEB_* DIST ARCH ADT QEMU_LOG_FILENAME" </pre> Also copy over /etc/jenkins from one of the existing nodes, specifically for the debian glue config, see below. Then add it to Jenkins as a node (I just copied an existing node and changed the host/ip). Then run a build, it will likely fail, because our keys are not yet added to the pbuilder environment that just got created during the first build. Add it like so: <pre> cd /var/cache/pbuilder/base-beowulf-arm*.cow wget https://maedevu.maemo.org/extras-key.asc wget https://maedevu.maemo.org/testing-key.asc chroot /var/cache/pbuilder/base-beowulf-arm*.cow apt install gnupg1 apt-key add < extras-key.asc apt-key add < testing-key.asc rm *.asc exit cd - </pre> /etc/jenkins/pbuilderrc: <pre> MIRRORSITE="http://pkgmaster.devuan.org/merged/" COMPONENTS="main contrib non-free" DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/devuan-keyring.gpg" "--no-merged-usr") PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-apt EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring" AUTOCLEANAPTCACHE=yes if [[ $ARCH == arm* ]] ; then EXTRAPACKAGES="$EXTRAPACKAGES pinthread" export LD_PRELOAD="$LD_PRELOAD /usr/lib/pinthread.so" export PINTHREAD_CORE=0 fi </pre> /etc/jenkins/debian_glue: <pre> # Example configuration file for the jenkins-debian-glue software. # Install this file as /etc/jenkins/debian_glue to enable it. # Set GnuPG ID that should be used for signing the reprepro repository. # If you build packages for Squeeze your reprepro repositories *MUST* be # signed and the keyring that holds the public key (REPOSITORY_KEYRING) # must be set. # Expected format: DEADBEEF if [ "$release" = "leste" ]; then KEY_ID=4AA81E3E026EFE82E47D6901545FEC4E0927F6FD else # extras KEY_ID=89F632F52BFE13EBBB2EBD0D2700BD8E6604EC2E fi # If TRUNK_RELEASE is set then the package(s) of the repository # receiving the packages that are built will be copied to the # repository specified in TRUNK_RELEASE. This provides the option # to have all recent versions of packages in a central repository. # TRUNK_RELEASE='release-trunk' # If packages are build for more than one architecture you can # decide which architecture should build the "Architecture: all" # packages. On all other architectures only the arch specific # packages will be build then. # If unset it will default to the architecture of the host system. MAIN_ARCHITECTURE="amd64" # Hook scripts for pbuilder/cowbuilder, used e.g. for autopkgtest. # Default: # PBUILDER_HOOKDIR=/usr/share/jenkins-debian-glue/pbuilder-hookdir/ # To enable a pbuilder configuration file for usage as documented # in man pbuilder(8) under --configfile set this option. # By default no user specific pbuilder configuration file is used. # PBUILDER_CONFIG=/etc/jenkins/pbuilderrc # Base directory for reprepro repositories, can be overwritten # via REPOSITORY on demand # Default: DEFAULT_REPOSITORY='/srv/repository' # In order to keep the build versions unique and to ensure that there # are no duplicates, the version number from the changelog is padded # with the date and the build number. # To override this behaviour and preserve the version number from the # changelog, set USE_ORIG_VERSION to true. USE_ORIG_VERSION=true SKIP_DCH=true DCH_OPTS="--multimaint-merge --ignore-branch" #DCH_EXTRA_OPTS="--distribution=maemo7 --force-distribution -R" #DCH_EXTRA_OPTS=" #maybe? line 103 in /usr/bin/generate-git-snapshot UNRELEASEAD_APPEND_COMMIT="false" # By default reprepro repositories are not verified but assumed to be # trustworthy. # Please note that if you build packages for Squeeze, the reprepro # repositories *MUST* be signed and verifiable. I.e. you need to set # KEY_ID and the corresponding keyring in REPOSITORY_KEYRING that # holds the public key portion for that KEY_ID. # REPOSITORY_KEYRING=/etc/apt/trusted.gpg.d/my-custom-keyring.gpg REPOSITORY_KEYRING=/var/lib/jenkins/.gnupg/keyring.gpg #release=${release:-kawai} #REPOSITORY=/srv/repository # If $release is set then "${REPOSITORY}/release/${release}" # is used as release repository. If you want to use a different # directory set RELEASE_REPOSITORY accordingly. # Default: # RELEASE_REPOSITORY="${REPOSITORY}/release/${release}" RELEASE_REPOSITORY="${DEFAULT_REPOSITORY}/${release}" # Remove packages from a $release before processing incoming # This allows to rebuild and provide versions already existent # in the release repository they are built for. # Default: # REMOVE_FROM_RELEASE=false # By default the underlying build system (cowbuilder/pbuilder) # automatically destroys the build environment, even if building # fails for whatever reason. If DEB_KEEP_BUILD_ENV is set then # a copy of the build environment is created under # /var/cache/pbuilder/build/debug.$JOBNAME # Please be aware that those build environments usually require # quite some disk space, so do not forget to remove them. # If unset the build environment won't be kept if building fails. # DEB_KEEP_BUILD_ENV=true # Comma separated list of extra repositories for resolving dependencies. # Usage example: # REPOSITORY_EXTRA='deb http://security.debian.org/ wheezy/updates main,deb-src http://security.debian.org/ wheezy/updates main' # Default: # REPOSITORY_EXTRA= PARENT_DISTRO= DEVUAN_BUILD= case "$distribution" in stretch*) PARENT_DISTRO=ascii ;; buster*) PARENT_DISTRO=beowulf ;; bullseye*) PARENT_DISTRO= ;; bookworm*) PARENT_DISTRO= ;; *) DEVUAN_BUILD=1 esac if [ -z "$DEVUAN_BUILD" ]; then # Debian MIRROR="http://deb.debian.org/debian" SECURITY_MIRROR="http://security.debian.org/debian-security" SECURITY_FOLDER="${distribution}/updates" # This option is needed for pbuilder to work nice in Devuan environment PBUILDER_CONFIG=/etc/jenkins/debian_mirror # Initialize it with command: # echo 'MIRRORSITE=http://deb.debian.org/debian' > /etc/jenkins/debian_mirror else # Devuan MIRROR="http://pkgmaster.devuan.org/merged" SECURITY_MIRROR="${MIRROR}" SECURITY_FOLDER="${distribution}-security" fi REPOSITORY_EXTRA="deb ${MIRROR} ${distribution}-updates main contrib non-free" REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb ${SECURITY_MIRROR} ${SECURITY_FOLDER} main contrib non-free" REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} main contrib non-free" # Pull in deps from -devel when building -devel if [ "$ENABLE_MAEMO_DEVEL" = "yes" ]; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-devel main contrib non-free" fi if [ "$ENABLE_MAEMO_EXPERIMENTAL" = "yes" ]; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-experimental main contrib non-free" fi # Pull in deps from the main repo when building extras if [ "$release" = "extras" ]; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${distribution} main contrib non-free" fi # Pull in deps from main repo when building for Debian if [ -n "$PARENT_DISTRO" ]; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${PARENT_DISTRO} main contrib non-free" fi # Device specifics backports_jobs="mesa" #n900_jobs="libmatchbox2-n900 hildon-desktop-n900" echo "job_name: $JOB_NAME" case "$JOB_NAME" in *-source) _curpkgname="$(echo $JOB_NAME | sed 's,-source$,,')" ;; *-binaries/*) _curpkgname="$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-binaries$,,')" ;; *-repos/*) _curpkgname="$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-repos$,,')" ;; *) _curpkgname="irrelevant" ;; esac if echo "$backports_jobs" | grep -qw "$_curpkgname"; then case "$distribution" in ascii*|stretch*|beowulf*|buster*) REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb ${MIRROR} ${distribution}-backports main contrib non-free" ;; esac fi #if echo "$n900_jobs" | grep -qw "$_curpkgname"; then # REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} n900" #fi droid4_jobs="pvr-omap4" if echo "$droid4_jobs" | grep -qw "$_curpkgname"; then REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} droid4" fi network_jobs="pine64-uboot zkgroup signald anbox-image" if echo "$network_jobs" | grep -qw "$_curpkgname"; then PBUILDER_USENETWORK=yes fi # Comma separated list of URLs with keys for extra repositories. # Usage example: # REPOSITORY_EXTRA_KEYS='http://foorepo.domain.com/key1.gpg,http://barrepo.domain.com/key2.gpg' # Default: # REPOSITORY_EXTRA_KEYS= REPOSITORY_EXTRA_KEYS='http://maedevu.maemo.org/testing-key.asc,http://maedevu.maemo.org/extras-key.asc' # autopkgtests are executed automatically inside the cowbuilder environment by # default, corresponding to the ADT='internal' setting or if ADT is unset. # To execute autopkgtests also externally via adt-run you need to set ADT to # either 'external' (no internal runs) or 'all' (internal + external runs). # The external autopkgtests depend on a configured ADT_RUNNER setting. # To skip internal as well as external autopkgtests set ADT='skip'. # Usage example (see adt-virt-qemu(1) for details regarding image setup): # ADT='external' # ADT_RUNNER="adt-virt-qemu /srv/adt-${distribution:-}-${architecture:-}.img" # Default: # ADT= # Control usage of eatmydata to speed up builds. If eatmydata is present on the # host system and when building for a recent distribution (Debian/jessie + # Ubuntu/vivid or newer) eatmydata is enabled automatically. # To force its usage (skipping any host + distribution checks) set it to 'true'. # To disable its usage set it to 'false'. # USE_EATMYDATA=true # Enable ccache (compiler cache for fast recompilation of C/C++ code) # to speed up builds. USE_CCACHE=true # Specify the format (as accepted by the 'date' command) for the generated # build timestamp. # Default: %Y%m%d%H%M%S # TIMESTAMP_FORMAT="%Y%m%d%H%M%S" # In case you are explicitly marking your new package version as "UNRELEASED" # inside the debian/changelog file, you may not get a package build version # number containing the SCM commit. Set this to 'true' in order to work around # this. # Default: false # UNRELEASED_APPEND_COMMIT=false </pre> 1233d71c8f0d9e22f3997b932cf211655237f773 Development 0 61 1283 1002 2022-04-28T15:44:14Z BuZz 32 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === All development software and tests end up in 'beowulf-devel' apt source. For enabling this edit '/etc/apt/sources.list' and change the last line to: deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4 Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap systemd-container && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === Localization === See [[Localization]] === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 5f819829d68c4df50c430f738be08efa9b7b6a6f 1284 1283 2022-04-28T19:35:13Z BuZz 32 /* Developing on a device */ wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === All development software and tests end up in 'beowulf-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line: deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4 Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap systemd-container && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === Localization === See [[Localization]] === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 27da421d0b576a81c560f6c20aa8055fd6ba1e3c 1285 1284 2022-04-28T19:36:40Z Wizzup 4 /* Developing on a device */ wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === All development software and tests end up in 'beowulf-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line: deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4 The exact line might depend on your device; just copy the maemo beowulf line and change beowulf to beowulf-devel - for example, if you're not on a mapphone (droid) device, you probably don't want the droid4 component in the line. Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap systemd-container && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === Localization === See [[Localization]] === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in a45e58be41f86bad5a4f7d087b1178ca0cada418 User:Retr0 2 191 1287 2022-05-12T15:48:26Z Retr0 55 Created page with "<div style="float: right;"> {{User_GitLab|retr0_0}} {{User_main_device|Xiaomi Mi A3 (xiaomi-laurel_sprout)}} </div>" wikitext text/x-wiki <div style="float: right;"> {{User_GitLab|retr0_0}} {{User_main_device|Xiaomi Mi A3 (xiaomi-laurel_sprout)}} </div> ba734b8d4a3aa9eab12b79754b5129c369e55197 1288 1287 2022-05-12T15:49:01Z Retr0 55 Blanked the page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 User:Wizzup/HeadlessWifi 2 192 1289 2022-05-17T21:28:51Z Wizzup 4 Created page with "Sometimes one might need to set up wifi over serial when there is no touchscreen or display. This is an example on how to do it. Make sure that the wlan_ssid and name match,..." wikitext text/x-wiki Sometimes one might need to set up wifi over serial when there is no touchscreen or display. This is an example on how to do it. Make sure that the wlan_ssid and name match, of course. <pre> gconftool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/EAP_wpa_preshared_passphrase -t string PSKHERE gconftool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/type -t string WLAN_INFRA gconftool -t bool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_hidden false gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_security WPA_PSK gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/proxytype NONE gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/name 'Het Kleine Bos' gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/ipv4_type auto gconftool -t list --list-type int -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_ssid '[72,101,116,32,75,108,101,105,110,101,32,66,111,115]' gconftool -t list --list-type string -s /system/osso/connectivity/network_type '[WLAN_INFRA]' gconftool -t int -s /system/osso/connectivity/search_interval 300 dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:"ac257b8f-5255-4239-9123-6dfac56547c8" uint32:0 </pre> cde3bbbd07b74a26e329d3a49c021b836bd309ce User:BuZz 2 193 1290 2022-05-19T13:45:56Z BuZz 32 Created page with "hi, i'm a founding [https://nurdspace.nl NURDspace] member. Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily..." wikitext text/x-wiki hi, i'm a founding [https://nurdspace.nl NURDspace] member. Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily driver. Also been using devuan since inception. Also bunch of other stuff, i guess. Since leste exists i've been messing around with it on a droid4 , been carrying it as daily driver since early 2022 now. 84fcea7b871874ced896fb52ecebbd68132af6a1 1292 1290 2022-05-19T13:50:53Z BuZz 32 wikitext text/x-wiki hi, i'm a founding [https://nurdspace.nl NURDspace] member. Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily driver. Also been using devuan since inception. Also bunch of other stuff, i guess. Since leste exists i've been messing around with it on a droid4 , been carrying it as daily driver since early 2022 now. Careful, i got [[User:BuZz/Opinions|opinions]] cd099499d9704b6e6c052b24b3c95b4dfeafc727 User:BuZz/Opinions 2 194 1291 2022-05-19T13:50:18Z BuZz 32 Created page with "== virtual keyboard == (while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyb..." wikitext text/x-wiki == virtual keyboard == (while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyboard window open while using? == QTWebBrowser == I reaaaally want to be able to zoom -out- from 100% , not just in. * https://github.com/qtproject/qt-apps-qtwebbrowser == My dataconnection issues == Every time i restart icd2 , i see my datasim connection once. I can tap it, and it will connect but not according to UI , i need to press 'No' on the popup for retry, and execute udhcpc -i wwan3 myself. Then its stable for -ages-. Opening application manager breaks the connection. Also reopening icd2 'internet connections' breaks the connection. (from statusbar, not from settings app) c9da0e3f96277c3633a1aef9ed5258b581b4a81a 1293 1291 2022-05-19T13:54:57Z BuZz 32 /* My dataconnection issues */ wikitext text/x-wiki == virtual keyboard == (while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyboard window open while using? == QTWebBrowser == I reaaaally want to be able to zoom -out- from 100% , not just in. * https://github.com/qtproject/qt-apps-qtwebbrowser == My dataconnection issues == (on a droid4 running latest -devel) Every time i restart icd2 , i see my datasim connection once. I can tap it, and it will connect but not according to UI , i need to press 'No' on the popup for retry, and execute udhcpc -i wwan3 myself. Then its stable for -ages-. Opening application manager breaks the connection. Also reopening icd2 'internet connections' breaks the connection. (from statusbar, not from settings app) 12c5d3bc88c85fb050a5cc863be3841c5c55697b PinePhone 0 93 1296 1273 2022-06-26T19:45:36Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel Works with ofono; Calls work with sphone as UI |- | Accelerometer || Yes || Quectel EG25 has support for VoLTE, but some extra setting might be needed |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] 9078a0cfed0c3dee9bb83e56817edf1539e09cc7 1297 1296 2022-06-26T19:48:39Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has support for VoLTE, no userland required, setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] 72c59c9e76499352c1f3021aad8810fca823c23a 1298 1297 2022-06-26T19:50:05Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' TODO mention/link to:''' * USB peripheral support * Camera UI * Bluetooth UI ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] 2dd3255b8baa7dc1a0ba42b38c123d5ff306bd4e 1299 1298 2022-07-04T14:20:06Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. [[Category:Device]] d21e715e5e3a47834703c50cfb607f35f3663d28 1300 1299 2022-07-04T19:04:36Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. === How to take a picture === Maemo userland to take a picture is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l To capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 To capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin $converted_picture.jpeg [[Category:Device]] 437df0c33edba51794f3e3684fc71a496ebb3e52 1301 1300 2022-07-04T19:07:24Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported ''' Note that: ''' * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb [[Category:Device]] ccfe49b681d3bcf86c355f40f694417de5157f9f 1302 1301 2022-07-04T19:09:33Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb [[Category:Device]] f6e69319b50096259dcf30d303b159750da9e2eb 1303 1302 2022-07-05T20:04:12Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion [[Category:Device]] b7da54122967fff71ed2caa96d655490da660ff0 1304 1303 2022-07-06T19:40:37Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness [[Category:Device]] ced7a1a006bb543c703b39276e85af83092c1480 1305 1304 2022-07-06T19:56:30Z Rafael2k 54 /* Enabling Flash Light / Torch */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 21767fe8bdc1d4cae7b65e198e3bdcf66d1ff73d 1309 1305 2022-08-15T17:26:25Z Auanta 57 warning that boot.txt has been removed and as such the instructions need to be updated wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 91fdd7e7d4635f702afe383124b10b6f0f3742ec 1310 1309 2022-08-15T17:32:55Z Auanta 57 /* Modify the image to use eMMC paths */ fdisk -u -l only works with the .img file not .img.xz having tried this myself wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * .img.xz does not match .img.sha * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] e0360f311a07bc00b0341c9453d2c8c85a6b40b6 1311 1310 2022-08-15T18:19:39Z Auanta 57 /* Installation */ currently the latest images do indeed match the sha wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki]. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 2c623aeea5e59b937d9024071520a43988727079 1312 1311 2022-08-15T19:52:42Z Auanta 57 /* Install image to eMMC */ the link was broken. I have migrated the necessary content to this wiki and fixed the link. wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} The first Pinephone (braveheart) phone == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 747eaaae6bedbd9c1cfb1c05852d3955f53fa65e 1313 1312 2022-08-15T20:08:35Z Auanta 57 defining for which PinePhone this applies wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Format the SD card as ext4 using any of your preferred tools. ====if you downloaded the .img.xz==== extract the image: $ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card $ cd /path/to/sd-card $ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to. In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion. $ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. ====if you downloaded the .tar.gz==== This might work? $ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card $ cd /path/to/image/ $ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz Then insert SD card, replace the back cover, and turn it on. These steps should work in theory, but at the moment the image is unbootable. === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 90c0da86323c8bfbe88c32f159defeae79f82535 1314 1313 2022-08-15T20:10:32Z Auanta 57 /* SD Card Installation */ now with improved instructions! removed the tar.gz section that does not exist anymore! wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== # Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' press 'p' to view current table press 'o' to erase and make a new table press 'w' to write changes and quit ====if you downloaded the .img.xz==== # Write the image to an SD-Card. Be very careful with this step (read warnings below). $ unxz maemo-leste-*-arm64-pinephone-*.img.xz $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. <small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small> <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 7167ddc18ff353ffc9cc583dd72da444e8e92aa5 1315 1314 2022-08-15T20:12:44Z Auanta 57 /* if you downloaded the .img.xz */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== # Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' press 'p' to view current table press 'o' to erase and make a new table press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== $ Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here]. $ unxz maemo-leste-*-arm64-pinephone-*.img.xz ''Be very careful with this step (read warnings below).'' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. <small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small> <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] fd5c5c885bf349587fa3566015fc58c1c48a69b9 1316 1315 2022-08-15T20:13:33Z Auanta 57 /* Write the image to an SD-Card. */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== # Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' press 'p' to view current table press 'o' to erase and make a new table press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== # Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here]. $ unxz maemo-leste-*-arm64-pinephone-*.img.xz ''Be very careful with this step (read warnings below).'' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo. <small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small> <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] f7197cb0799ab25050f7a792dbca6a08a802ff6b 1317 1316 2022-08-15T20:14:54Z Auanta 57 /* Write the image to an SD-Card. */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== # Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' press 'p' to view current table press 'o' to erase and make a new table press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== # Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here]. $ unxz maemo-leste-*-arm64-pinephone-*.img.xz ''Be very careful with this step (read warnings below).'' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small> <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] a9a4d6a784ae592fb8382be2f9b0e3894653752f 1318 1317 2022-08-15T20:15:29Z Auanta 57 /* SD Card Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' press 'p' to view current table press 'o' to erase and make a new table press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here]. $ unxz maemo-leste-*-arm64-pinephone-*.img.xz ''Be very careful with this step (read warnings below).'' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small> <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] dde77c4b4afcdc7cc9bbed8b913f972da6ec7a11 1319 1318 2022-08-15T20:24:46Z Auanta 57 /* Write the image to an SD-Card. */ add checksum instructions, formatting wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' press 'p' to view current table press 'o' to erase and make a new table press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== ''DO NOT'' copy-paste these instructions. Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here] and the associated checksum file. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare results. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz ''Be very careful with this step (read warnings below).'' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 45e5f5347398450495c1f6724d62b8f18b765182 1320 1319 2022-08-15T20:29:19Z Auanta 57 /* Write the image to an SD-Card. */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' press 'p' to view current table press 'o' to erase and make a new table press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare results. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 380aea18c394b2b3e46168c60ce7442f14dbfa4e 1321 1320 2022-08-15T20:29:57Z Auanta 57 /* Prepare the SD card */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == (Work in Progress) Currently: * working out how to install .tar.gz Unlike most phones, it's pretty simple. Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity: $ cat maemo-leste-*-arm64-pinephone-*.img.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz or $ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha $ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare results. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 4024109063d3270924bb39dc4f50115f36c9c498 1322 1321 2022-08-15T20:36:26Z Auanta 57 /* Installation */ trimmed unnecessary cruft at top wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === '''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.''''' ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 3894f9bdccbb4b628c449aa210132aad78e07243 1323 1322 2022-08-15T20:38:19Z Auanta 57 /* eMMC Installation */ moved warning wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning, this no longer works in latest images since boot.txt was removed. Please update this section.''''' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 1c4a4c24f07c8a5e801b6a109144c253f1c2d26f 1324 1323 2022-08-15T20:39:50Z Auanta 57 /* Modify the image to use eMMC paths */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently not working, needs testing'' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] cfe60734c4063e56b3911b6918a603b91ccaf4af 1325 1324 2022-08-15T20:40:37Z Auanta 57 /* Install image to eMMC */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == ''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] ''' ''' What you can do with the 20220206 image:''' * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 1e5396f9126aa230a8525add962c32596e60f86d 1326 1325 2022-08-15T20:44:06Z Auanta 57 /* Notes */ moving functionality back to the other section about functionality wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images.] ''' == Status == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] f9bd014fb8eaa0a703258f380cdc65779173ab1b 1327 1326 2022-08-15T20:47:07Z Auanta 57 /* Status */ moved functionality summary to this section from Notes for coherence wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images.] ''' == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 4f4c3e148e98d24e97f7d6ac08b7e6052bc33c01 1328 1327 2022-08-15T20:52:25Z Auanta 57 /* Notes */ Maemo how to contact wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 8c36631431de648008d56c57710031335e68679d 1329 1328 2022-08-15T20:53:47Z Auanta 57 /* Notes */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - * === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 4ba8f1087a78d6b1b7152a2581cdbad5aa3dcd98 1330 1329 2022-08-15T20:56:04Z Auanta 57 /* More Information */ moving this section to the status section wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] c4e6a1212b75ee47e020dae7108dfe41ef55dad6 1331 1330 2022-08-15T20:57:38Z Auanta 57 /* Status */ moved section closer to status/functionality wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe [[Category:Device]] 0ee9befe60e627fbcc93ad15956ff1ab251953f3 1336 1331 2022-08-15T22:20:31Z Auanta 57 adding some tips wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' There is also the app store. Note: Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Launching apps (such as Firefox/Iceweasel) === * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec [[Category:Device]] 393d516855684a66fb55adec993c285b801e88bb 1337 1336 2022-08-15T22:22:01Z Auanta 57 /* Launching apps (such as Firefox/Iceweasel) */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' There is also the app store. Note: Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec [[Category:Device]] 5edada3677853a27c2316a6176fbbeda7564b92d 1338 1337 2022-08-15T22:23:16Z Auanta 57 /* Installing apps */ moving to new section wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec [[Category:Device]] 50a429f5530fed2b10b8a867266e6f5ddf88911d 1339 1338 2022-08-15T22:25:04Z Auanta 57 tip: desktop icons for apps wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec == Make apps show up on desktop == Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) [[Category:Device]] ed76ca6aeca74566830a9a16741fd531a4677325 1340 1339 2022-08-15T22:25:49Z Auanta 57 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) [[Category:Device]] e1cc7a0d45f7a4fe6eae60fc9c91e0a7e6c98ba7 1341 1340 2022-08-15T22:30:12Z Auanta 57 formatting wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== Extract the image ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz ==== Modify the image to use eMMC paths ==== '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' === Using Tow-Boot === If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. === Using JumpDrive === You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] === From the booted microSD === # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) [[Category:Device]] 082b5596bbe69ed3ea40927115884a6677a471ab 1342 1341 2022-08-15T22:33:27Z Auanta 57 Formatting wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ==== From microSD card ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install image to eMMC ==== ''Note: Currently '''not working''''' '''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' ==== Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== From the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) [[Category:Device]] 9e245d9e7f20e9ddf776e78ac02016bb0068ce62 1343 1342 2022-08-15T22:36:07Z Auanta 57 reorganizing wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:''' ==== From microSD card ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== From the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) [[Category:Device]] 333a5932cdf6a51410c4b2af51ffd19ab82a1030 1344 1343 2022-08-15T22:36:49Z Auanta 57 /* eMMC Installation */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== From microSD card ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== From the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) [[Category:Device]] f12249815cba8c93bb816088165bf5fb749eab4e 1345 1344 2022-08-15T22:41:14Z Auanta 57 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== From microSD card ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== From the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Make keyboard show on Firefox/Iceweasel === The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). [[Category:Device]] a7efc7389d08d4a04440fb6b9945159e8d7b7304 Motorola Droid 4 0 50 1306 1286 2022-07-10T09:54:02Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.18.x |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. ==== Torch ==== The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below): <source> ##Install the prerequisites $ sudo apt install i2c-tools ## Turn LED on in torch mode $ sudo i2cset -y 2 0x53 0x10 0x1a ## Turn LED on in privacy indication mode $ sudo i2cset -y 2 0x53 0x10 0x19 ## Turn LED off (in any mode) $ sudo i2cset -y 2 0x53 0x10 0x18 ## Use LED for doing a hella bright flash for some time once and then turn off $ sudo i2cset -y 2 0x53 0x10 0x1b </source> == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] a07d247f47821e91aff0b1867e90f11390d772f3 Motorola Droid Bionic 0 111 1307 1266 2022-07-10T09:54:22Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa XT875 |dimensions=127x67.3x12.7mm |release_date=2011-09-8 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.18.x |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=untested |sw_sms=Yes, no UI |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> <pre> 22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly </pre> == Stuff to try == ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] 0d2f3333d210d3b0365b39fa7fe8918452aebe3f Tor 0 168 1308 1236 2022-07-27T23:08:27Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo=2021-11-01 |maemo_leste_repo=https://github.com/maemo-leste/libicd-tor |category=Network |packager=[[User:Wizzup]] }} = Tor in Maemo Leste = [https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet. Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported. == Configuring Tor using the UI == In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings. Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort. == Obligatory word of warning == If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time. Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location. Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage. == Gallery == <gallery widths=320px heights=173px> TorAppMgr.png|Tor is installable from the application manager TorAppMgr2.png TorCheck.png|Checking system wide support TorProvider.png|Setting a per connection (IAP) Wireguard configuration TorProvider2.png| TorConnected.png|Tor is connected TorCPA.png|Tor control panel applet icon TorCPA2.png|Tor control panel, editing a configuration </gallery> == Fetching package updates through hidden services == It is possible to update your Maemo Leste device entirely through Tor, all you'll have to do is edit /etc/apt/sources.list and replace the following two hosts with the hidden service URLs: <pre>https://pkgmaster.devuan.org/merged -> tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged https://maedevu.maemo.org/leste -> tor+http://maemopkgove3kc2xxzyuk26j3ict6qzbqi3govge3s6h5aokr2uo6eqd.onion/leste </pre> [[Category:Extras]] 51ff7bb2a664b046242fae4bef20ac0eda3c3deb Main Page 0 1 1332 1267 2022-08-15T21:35:13Z Auanta 57 /* Links */ reorganized, formatting, add a couple links wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == ** [https://leste.maemo.org/Leste_FAQ Maemo Leste FAQ] <div> The '''central point of meeting and talking''' is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. * Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] * Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] * Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] * Our Github subdomain: [https://maemo-leste.github.io/] * Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] * Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ * Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] * Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) * Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) * Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] * Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * Our Forum [https://talk.maemo.org/forumdisplay.php?f=66] * RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] * Our Twitter: [https://twitter.com/maemoleste @maemoleste] * [https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 92ecdb2bbbcae72129283f94f749923402e5cb87 1333 1332 2022-08-15T21:35:36Z Auanta 57 /* Links */ wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The '''central point of meeting and talking''' is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192. * Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] * Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] * Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] * Our Github subdomain: [https://maemo-leste.github.io/] * Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] * Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ * Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] * Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) * Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) * Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] * Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * Our Forum [https://talk.maemo.org/forumdisplay.php?f=66] * RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] * Our Twitter: [https://twitter.com/maemoleste @maemoleste] * [https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)] </div> 521202205b250f19bc913c2d44cd204deab2e084 1334 1333 2022-08-15T21:43:34Z Auanta 57 /* Links */ formatting (make it eye catching) wikitext text/x-wiki = Description = Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192. * Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] * Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] * Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] * Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/] * Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] * Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ * Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] * Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) * Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) * Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] * Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66] * RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] * Our Twitter: [https://twitter.com/maemoleste @maemoleste] * Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote) </div> 5675d3126d14ac49d72efabbecba8ee9c1917b6b 1335 1334 2022-08-15T21:49:34Z Auanta 57 /* Description */ formatting wikitext text/x-wiki == Description == Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192. * Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] * Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] * Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] * Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/] * Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] * Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ * Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] * Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) * Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) * Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] * Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66] * RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] * Our Twitter: [https://twitter.com/maemoleste @maemoleste] * Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote) </div> ae584ead37a14d698e1121e7a515e098bf74a5bb PinePhone 0 93 1346 1345 2022-08-15T22:44:18Z Auanta 57 /* From microSD card */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== From the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Make keyboard show on Firefox/Iceweasel === The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). [[Category:Device]] 9a1a7c282539e7b7197a15683fe2a67e7b0298a3 1347 1346 2022-08-15T22:44:59Z Auanta 57 /* Using Tow-Boot */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== From the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Make keyboard show on Firefox/Iceweasel === The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). [[Category:Device]] f65ea218c53b3956b533762ff7f3bcb31d89adce 1348 1347 2022-08-15T22:45:16Z Auanta 57 /* Using JumpDrive */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== From the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Make keyboard show on Firefox/Iceweasel === The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). [[Category:Device]] 15631e5fb6dfdcdab06e77827dade722eb69805c 1349 1348 2022-08-15T22:45:39Z Auanta 57 /* From the booted microSD */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step (read warnings below).''''' $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small> <small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small> <small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Make keyboard show on Firefox/Iceweasel === The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). [[Category:Device]] c7333d0fa2c3077a800b6d176f86c727f43e5026 1350 1349 2022-08-15T22:52:23Z Auanta 57 formatting, reorganizing wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Make keyboard show on Firefox/Iceweasel === The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). [[Category:Device]] 6553dfd7cbef1f8bfccac0334ee76160992407b4 1351 1350 2022-08-15T22:56:29Z Auanta 57 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Make keyboard show on Firefox/Iceweasel === The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). This will be fixed in a future release (image tested: 20220731). [[Category:Device]] 8756d08bd36d604c946edcded47ae857e8689d40 1352 1351 2022-08-15T23:08:22Z Auanta 57 /* Install Using Tow-Boot */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Make keyboard show on Firefox/Iceweasel === The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). This will be fixed in a future release (image tested: 20220731). [[Category:Device]] 265b0791be694382c25c720a79db3dec7edce5dc 1354 1352 2022-08-16T00:27:06Z Auanta 57 more advice wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime [[Category:Device]] 3fcd979f2b66279dc56aef5e3f58ec1b5030b318 1355 1354 2022-08-16T00:27:52Z Auanta 57 /* Time zone / World Clock */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} == More Information == * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime [[Category:Device]] 4ad754b5f4baa09c95e6ace7861267f9120f6529 1356 1355 2022-08-16T01:01:21Z Auanta 57 /* More Information */ update wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime [[Category:Device]] ae0e46c3988146be9739d214b12f7d2d436ab59f 1357 1356 2022-08-16T01:02:53Z Auanta 57 /* More Information */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime [[Category:Device]] 639d7db7b2124752aa32681ea8c17706e883a531 1358 1357 2022-08-16T01:42:23Z Auanta 57 /* Note about Calculator */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime [[Category:Device]] 939391850e71d14f80f3c8e4080f9466823780f5 1359 1358 2022-08-16T02:57:20Z Auanta 57 /* Note about Calculator */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime [[Category:Device]] 963a8f08c6811e7639aa43e9054da62f15994895 1360 1359 2022-08-16T03:03:26Z Auanta 57 /* Make apps show up on desktop */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of app currently installed apps, do: $ sudo apt list --installed | less === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime [[Category:Device]] 9c7948711fa1ec30ec594fc931df6abd6939681e 1361 1360 2022-08-16T03:04:18Z Auanta 57 /* Make apps show up on desktop */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime [[Category:Device]] 133a53b7cbd262597e6c29fed3150c128da9158c 1362 1361 2022-08-16T03:09:53Z Auanta 57 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this [[Category:Device]] c247e9f3745321f059e27ff6e9f49dd29376d8df 1364 1362 2022-08-16T04:08:53Z Auanta 57 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks this page] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] e22b8ff67f0dd3b1284691adfdb3e054a45a0650 1365 1364 2022-08-16T04:09:35Z Auanta 57 /* More Tips & Tricks */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 07fdbcf7e7ecea5d706ad360fb5172b659bc2bbe 1366 1365 2022-08-16T04:10:40Z Auanta 57 /* Make apps show up on desktop */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 1d586ee07295f6f2529d6040327139ae55d594b2 Main Page 0 1 1353 1335 2022-08-15T23:36:13Z Auanta 57 /* Description */ link to IRC channel about Matrix bridge wikitext text/x-wiki == Description == Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste''', you can [[IRC_channel|use Matrix]] to connect if you wish. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192. * Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] * Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] * Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] * Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/] * Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] * Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ * Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] * Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) * Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) * Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] * Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66] * RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] * Our Twitter: [https://twitter.com/maemoleste @maemoleste] * Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote) </div> 0462f9cd30a835ec4959a81dd216d45694634e41 Tricks 0 120 1363 962 2022-08-16T04:06:44Z Auanta 57 wikitext text/x-wiki __FORCETOC__ = Randomize MAC Address = Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern. The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces. apt install -y macchanger During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC. macchanger wlan0 -e -a ifconfig wlan0 up = Keyboard / Mouse sharing with PC = To use a Leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this. https://github.com/debauchee/barrier Barrier software-KVM switch A hildonized Maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling. = Touchscreen support in Firefox (firefox-esr) = Add the necessary environment variable: echo "MOZ_USE_XINPUT2 DEFAULT=1" >> /etc/security/pam_env.conf Then in firefox, open '''about:config''' and set '''dom.w3c_touch_events.enabled''' to '''1'''. You can also set a mobile useragent by creating a string key called '''general.useragent.override'''. Then set something like this: Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0 = Customize console colors = TODO: explain how to make console white on black text 6cb2a8990009c063682589f1611143e52625e2a0 Motorola Droid Bionic 0 111 1367 1307 2022-08-16T12:52:27Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa XT875 |dimensions=127x67.3x12.7mm |release_date=2011-09-8 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.18.x |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=No |sw_touchscreen=Yes |sw_keyboard= |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]] |sw_vibration=Yes |sw_audio=Yes |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro=No, needs kernel work |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No, needs kernel/userspace work |sw_frontcam=No |sw_backcam=No |sw_idlepower=70mW, needs sim inserted |sw_standbytime=91.8h (with HW4X) }} == Installation == Hardware requirements: * Droid Bionic with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/IMbackK/bionic-clown-boot Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Notes == Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Unlocking the modem for usage in Europe == Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam. <pre> apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05 </pre> Tony also writes: <pre> 22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us </pre> <pre> 22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly </pre> == Stuff to try == ==== 3G Internet ==== <pre> 22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0 </pre> ==== GPS ==== <pre> modprobe gnss-motmdm and point gpsd to use /dev/gnss0 </pre> 22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :) Can try to <pre> mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps </pre> ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | USB slave || Yes || |- | USB host (OTG) || No || |- | Touchscreen || Yes || Capacitive |- | Keyboard || N/A || |- | Screen || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Vibration Motor || Yes || |- | Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |- | Phone calls || WIP || Untested |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Wifi || Yes || |- | Ethernet || N/A || |- | IrDA || N/A || Missing in hardware |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || No || |- | Nfc || No || no hardware |- | Accelerometer || Yes || |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration) |- | Gyro || No || needs kernel work |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | AGPS || No || |- | Front Camera || No || |- | Back Camera(s) || No || |- | Idle power consumption || ~70 mW || Needs sim inserted |- | Idle Battery life on new battery || 91.8 h || With HW4X |} [[Category:Device]] e49a6cd8e503678a46d4494ac157467d214bcb75 Motorola Droid 4 0 50 1368 1306 2022-08-16T12:52:47Z Wizzup 4 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.18.x |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded == Stuff to try == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. ==== Torch ==== The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below): <source> ##Install the prerequisites $ sudo apt install i2c-tools ## Turn LED on in torch mode $ sudo i2cset -y 2 0x53 0x10 0x1a ## Turn LED on in privacy indication mode $ sudo i2cset -y 2 0x53 0x10 0x19 ## Turn LED off (in any mode) $ sudo i2cset -y 2 0x53 0x10 0x18 ## Use LED for doing a hella bright flash for some time once and then turn off $ sudo i2cset -y 2 0x53 0x10 0x1b </source> == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 710c7034d97735b59b0113f1423ca7374690319f Status 0 64 1369 892 2022-09-03T13:03:39Z Wizzup 4 Update call/gps status wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono |- | [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon || |- | [[Status/SMS|SMS]] || WIP || sphone, conversations, ofono, telepathy-ring ? || |- | [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo |} 585713cf45c2368d8236bc1fb684eef2f773f8a2 1370 1369 2022-09-03T13:04:06Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox |- | [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works |- | [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon || |- | [[Status/SMS|SMS]] || WIP || sphone, conversations, ofono, telepathy-ring ? || |- | [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo |} 04f4b173499232a160203f932cbcc8248ecd1f0f 1371 1370 2022-09-03T13:04:43Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || No(t yet) || ? || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox |- | [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works |- | [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon || |- | [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? || |- | [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo |} 16efa1af94bfbf471cec5be134c468925b937067 1372 1371 2022-09-03T13:05:11Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it || |- | [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox |- | [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works |- | [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon || |- | [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? || |- | [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo |} 39a59b95546090facf6a2dfd0c64aea26c7c847f File:MStarDict SelectDictionary.png 6 195 1373 2022-09-29T06:11:22Z BuZz 32 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MStarDict Itemview.png 6 196 1374 2022-09-29T06:12:27Z BuZz 32 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/MStarDict 0 197 1375 2022-09-29T06:13:10Z BuZz 32 Created page with "{{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2022-09-16 |website=https://..." wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. Original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/ <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> f785823bf765d438374dda83c79f84254c1ccc61 1376 1375 2022-09-29T06:22:49Z BuZz 32 wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How do i use it == For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/ Then launch the program, and type a query. There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth. edf4c7e1fa527b9ec5eb2c5e3187fe415c56d644 1377 1376 2022-09-29T06:45:23Z BuZz 32 /* How do i use it */ wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How do i use it == For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/ Then launch the program, make sure to enable the dictionary you just copied and type a query. There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth. efc51ed42c8eb7e80a9934aec878d759b37a4611 1378 1377 2022-09-29T10:55:29Z BuZz 32 wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How do i use it == For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/ Then launch the program, make sure to enable the dictionary you just copied and type a query. There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth. 51a02041368b210f99d42a9793a9306d91a8849c 1379 1378 2022-09-29T10:57:35Z BuZz 32 /* How do i use it */ wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How do i use it == For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/. There are many sources to grab dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. Then launch the program, make sure to enable the dictionary you just copied and type a query. There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth. 72624e09d16e94d4e45aa239fc6f93345e938ad5 1380 1379 2022-09-29T10:59:09Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How to obtain dictionaries == For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/. There are many sources to grab dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. == How to use it == Launch the program, make sure to enable a dictionary and just type a query. There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth. e94901fb2e33cf27df6f77276cf396941c28636e 1381 1380 2022-09-29T10:59:56Z BuZz 32 /* How to obtain dictionaries */ wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How to obtain dictionaries == For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/. There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. == How to use it == Launch the program, make sure to enable a dictionary and just type a query. There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth. 080d764cc96a2abf9ff4c2856e1b7c9bef8ead1d 1382 1381 2022-09-29T11:02:59Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How to obtain dictionaries == For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/. There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. == How to use it == Launch the program, make sure to enable a dictionary and just type a query. There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth. f5e955290e381c2aaa58db0d5bc6bdc5eebbf348 1383 1382 2022-09-29T11:03:41Z BuZz 32 wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How to obtain dictionaries == For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/. There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. == How to use it == Launch the program, make sure to enable a dictionary and just type a query. There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'dictconv' to convert em back and forth. And there's even some dictionaries! 'stardict-english-czech' and 'stardict-german-czech'. You'll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself. 5dd33854fd47a819483721bc0cf2f12bc3d849b1 1385 1383 2022-09-29T11:10:09Z BuZz 32 wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How to obtain dictionaries == For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/. There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. == How to use it == Launch the program, make sure to enable a dictionary and just type a query. For text to speech, the program has two options. The first uses plain espeak TTS and a gender selection for reading out the entrynames. The second is called 'Real People' in the program and requires WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I'm not sure how the second option is supposed to work. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png MStarDict_Preferences.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'dictconv' to convert em back and forth. And there's even some dictionaries! 'stardict-english-czech' and 'stardict-german-czech'. You'll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself. 7a6ef96fffaa7d9697e6c5439e7fc52443e44a7f 1386 1385 2022-09-29T11:25:27Z BuZz 32 /* How to use it */ wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |website=https://github.com/norayr/mstardict |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How to obtain dictionaries == For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/. There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. == How to use it == Launch the program, make sure to enable a dictionary and just type a query. For text to speech, the program has two options. The first uses plain espeak built-in TTS and a gender selection for reading out the entrynames. The second is called 'Real People' in the program and requires WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I'm not sure how the second option is supposed to work. For the espeak one no added files are needed. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png MStarDict_Preferences.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'dictconv' to convert em back and forth. And there's even some dictionaries! 'stardict-english-czech' and 'stardict-german-czech'. You'll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself. 1bc58fb98de1d3f7d985976c78b0515c815be1fb 1387 1386 2022-09-29T11:28:13Z BuZz 32 wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found. The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979 == How to obtain dictionaries == For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/. There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. == How to use it == Launch the program, make sure to enable a dictionary and just type a query. For text to speech, the program has two options. The first uses plain espeak built-in TTS and a gender selection for reading out the entrynames. The second is called 'Real People' in the program and requires WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I'm not sure how the second option is supposed to work. For the espeak one no added files are needed. == Some pictures == <gallery> MStarDict_SelectDictionary.png MStarDict_Itemview.png MStarDict_Preferences.png </gallery> == Other links == * https://stardict-4.sourceforge.net/index_en.php * http://space.nurdspace.nl/~buzz/maemo/stardict-dic/ * https://web.archive.org/web/20170620212527/http://www.stardict.org/ == Also == Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'dictconv' to convert em back and forth. And there's even some dictionaries! 'stardict-english-czech' and 'stardict-german-czech'. You'll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself. ff1b5ed3353280ef83f374a3a6daf62236ee0d1f File:MStarDict Preferences.png 6 198 1384 2022-09-29T11:07:26Z BuZz 32 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Promotion 0 199 1388 2022-10-05T13:39:38Z BuZz 32 Created page with "== What == For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff. == HW == I'm using a si..." wikitext text/x-wiki == What == For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff. == HW == I'm using a simple mjpeg HDMI capture unit. * just search 'hdmi capture usb' on ali express, one of the units with two HDMI ports, so i can loop it through to a monitor * https://www.allekabels.nl/computerkabels/4566/1097219/hdmi-naar-hdmi-mini-kabel.html There's some confusion about how to setup xrandr, so i'll be looking into that aswell. == Ideas == * tasknav view of a youtube video playing + a 3D game * youtube background playback * true multitasking * install some devuan/debian upstream program * openlara , devilutionX , GZdoom , pcsx-rearmed , dethrace * how well chromium/chrome works! * sfone frontends * conversations * app manager * please add your ideas of stuff that people should see! 60051b35f76f10179259bc65646e9aeac5cb92d0 1389 1388 2022-10-05T13:41:12Z BuZz 32 /* Ideas */ wikitext text/x-wiki == What == For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff. == HW == I'm using a simple mjpeg HDMI capture unit. * just search 'hdmi capture usb' on ali express, one of the units with two HDMI ports, so i can loop it through to a monitor * https://www.allekabels.nl/computerkabels/4566/1097219/hdmi-naar-hdmi-mini-kabel.html There's some confusion about how to setup xrandr, so i'll be looking into that aswell. == Ideas == * tasknav view of a youtube video playing + a 3D game * youtube background playback * true multitasking * how well chromium/chrome works! * sfone frontends * conversations * app manager * openlara , devilutionX , GZdoom , pcsx-rearmed , dethrace * install some devuan/debian upstream program * blender? * gimp * puredata with GEM (and gl4es?) * please add your ideas of stuff that people should see! 12fa0a03dccdc946f2c6d0b911706ab97bbe5745 Contacts 0 200 1390 2022-10-09T13:46:02Z Wizzup 4 Created page with "{{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook |category=Office |packager=User:Wizzu..." wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook |category=Office |packager=[[User:Wizzup]] }} = Addressbook = Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format. == Qalendar == TODO: Cover features, including import/export, online awareness/presence, telepathy == Synchronising == One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]]. <pre> syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=carddav \ target-config@radicale contacts syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ radicale contacts </pre> And then run the initial sync: <pre> syncevolution --sync slow radicale contacts </pre> And the next time you want to synchronise, just call: <pre> syncevolution --sync two-way radicale contacts </pre> == Syncevolution-frontend == The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation. cd820e14f5cc213d59ade5b71e391e9157aebed6 1391 1390 2022-10-09T13:59:59Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook |category=Office |packager=[[User:Wizzup]] }} = Addressbook = Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format. == Qalendar == TODO: Cover features, including import/export, online awareness/presence, telepathy == Synchronising == One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]]. <pre> syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=carddav \ target-config@radicale contacts syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ radicale contacts </pre> And then run the initial sync: <pre> syncevolution --sync slow radicale contacts </pre> == Syncevolution-frontend == The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation. 725360a4751eddc8d67e8497d16ca785290c07a0 1392 1391 2022-10-09T14:04:51Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook |category=Office |packager=[[User:Wizzup]] }} = Addressbook = Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format. == Qalendar == TODO: Cover features, including import/export, online awareness/presence, telepathy == Synchronising == One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]]. <pre> syncevolution --configure \ database=http://localhost:5223/USER/UUID/ \ backend=carddav \ target-config@radicale contacts syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ radicale contacts </pre> And then run the initial sync: <pre> syncevolution --sync slow radicale contacts </pre> Then, if you want to synchronise: <pre> syncevolution --sync two-way radicale contacts </pre> == Syncevolution-frontend == The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation. f65ce2605850ff0a00e67c0fa85011586f2a6792 Sync 0 201 1393 2022-10-09T19:03:43Z Wizzup 4 Created page with "= Synchronisation = This page explains and suggests various ways of synchronising contacts, calendars and files. == Calendar, Notes, Tasks and Contacts == Synchronising cal..." wikitext text/x-wiki = Synchronisation = This page explains and suggests various ways of synchronising contacts, calendars and files. == Calendar, Notes, Tasks and Contacts == Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend). === Synchronising with syncevolution CalDav + CardDav === If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> ==== NextCloud synchronising ==== We will be synchronising the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronise '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this seems to be of the form: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronisation, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/username/contacts/ </pre> Given the above, a setup to synchronise calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronisation method for '''normal synchronisation''' (daily, hourly, etc synchronisations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ===== Warning: TLS Chain validation issues ===== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' ==== Radicale synchronising ==== Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronise # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronise The username (and optional password) are the radicale credentials. ===== Radicale Testing Server ===== For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now brose to http://localhost:5223, create an account (password is optional), and you should be able to synchronise, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) == Files synchronisation == TODO 7e677a3d920083eb47caa5ef4ea40fb3182e2bae 1394 1393 2022-10-09T19:05:35Z Wizzup 4 /* NextCloud synchronising */ wikitext text/x-wiki = Synchronisation = This page explains and suggests various ways of synchronising contacts, calendars and files. == Calendar, Notes, Tasks and Contacts == Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend). === Synchronising with syncevolution CalDav + CardDav === If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> ==== NextCloud synchronising ==== We will be synchronising the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronise '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this seems to be of the form: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronisation, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronise calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronisation method for '''normal synchronisation''' (daily, hourly, etc synchronisations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ===== Warning: TLS Chain validation issues ===== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' ==== Radicale synchronising ==== Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronise # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronise The username (and optional password) are the radicale credentials. ===== Radicale Testing Server ===== For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now brose to http://localhost:5223, create an account (password is optional), and you should be able to synchronise, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) == Files synchronisation == TODO afa585cc920c1c3d56241a54741d0edd18ec3650 1395 1394 2022-10-09T19:06:58Z Wizzup 4 /* Radicale Testing Server */ wikitext text/x-wiki = Synchronisation = This page explains and suggests various ways of synchronising contacts, calendars and files. == Calendar, Notes, Tasks and Contacts == Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend). === Synchronising with syncevolution CalDav + CardDav === If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> ==== NextCloud synchronising ==== We will be synchronising the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronise '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this seems to be of the form: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronisation, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronise calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronisation method for '''normal synchronisation''' (daily, hourly, etc synchronisations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ===== Warning: TLS Chain validation issues ===== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' ==== Radicale synchronising ==== Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronise # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronise The username (and optional password) are the radicale credentials. ===== Radicale Testing Server ===== For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronise, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) == Files synchronisation == TODO ee232cdd01383ce5d5c560ac4e5a91d0f12b3308 Calendar 0 109 1396 1222 2022-10-09T20:38:22Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/qalendar |category=Office |packager=[[User:Wizzup]] }} = Calendar = Data is stored in /home/user/.calendar/calendardb - in SQLite3 format. == Qalendar == Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar * cal-home-widget has also been ported == Improvements over Fremantle Qalendar == * Supports landscape at dynamic resolutions (vs only 800x480) Planned: * Portrait support == Synchronising == See the [[Sync]] page. Alternatively, one can try this script, but it currently only syncs the calendar # Install syncevolution first via 'apt install syncevolution' # Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh # Open it and change the vars to reflect your server # Run it if that doesn't work try the section below Random resources: * https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html * https://wiki.maemo.org/Calendar_database * https://wiki.maemo.org/Sync * http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/ * https://talk.maemo.org/showthread.php?t=75810 3326f9eaafa1384c894c7e61ec186d21d963cc8e Packaging 0 69 1397 989 2022-10-09T23:33:07Z BuZz 32 wikitext text/x-wiki The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste We use the Jenkins CI https://phoenix.maemo.org along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration The base logic of buildng Debian packages in Jenkins comes from https://jenkins-debian-glue.org = Workflow = Our workflow consists of having the packages in Git, along with respective branches. The master branch in git should represent the latest development. When the sources are ready, we create a new branch called "maemo/ascii", which represents the Devuan suite we base it on. Being git-based, our packages require the gbp.conf file inside the debian directory. All of our packages contain the exact same gbp.conf, which is the following: <pre> [DEFAULT] upstream-tag=%(version)s </pre> This file is used by gbp, which in turn is used by jenkins-debian-glue. The rest is standard Debian packaging. = Initial packaging = TODO = Updating a package = TODO = Links = * https://wiki.maemo.org/Packaging * https://wiki.maemo.org/Extras-testing/Command_line_applications * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu 84d77b171c29ea2df99b9fb268f328c1d59ddf6b Sync 0 201 1398 1395 2022-10-10T00:24:21Z BuZz 32 wikitext text/x-wiki = Synchronisation = This page explains and suggests various ways of synchronising contacts, calendars and files. == Calendar, Notes, Tasks and Contacts == Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend). === Synchronising with syncevolution CalDav + CardDav === If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> ==== NextCloud synchronizing ==== We will be synchronising the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronise '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this seems to be of the form: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ===== Warning: TLS Chain validation issues ===== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' ==== Radicale synchronising ==== Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. ===== Radicale Testing Server ===== For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) == Files synchronization == TODO 57396e303a53795b50667689f1b48f0a2e2b3a8f 1399 1398 2022-10-10T00:26:34Z BuZz 32 wikitext text/x-wiki = Synchronization = This page explains and suggests various ways of synchronizing contacts, calendars and files. == Calendar, Notes, Tasks and Contacts == Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). === Synchronizing with syncevolution CalDav + CardDav === If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> ==== NextCloud synchronizing ==== We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ===== Warning: TLS Chain validation issues ===== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' ==== Radicale synchronising ==== Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. ===== Radicale Testing Server ===== For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) == Files synchronization == TODO 5cbd333d24d85130d5b64e62a5b1ce5b685690fc 1400 1399 2022-10-10T00:34:10Z BuZz 32 wikitext text/x-wiki = Synchronization = This page explains and suggests various ways of synchronizing contacts, calendars and files. == Calendar, Notes, Tasks and Contacts == Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). === Synchronizing with syncevolution CalDav + CardDav === If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> ==== NextCloud synchronizing ==== We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ===== Warning: TLS Chain validation issues ===== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' === Radicale synchronising === Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. ==== Radicale Testing Server ==== For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) == Files synchronization == TODO == Known Issues == * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. f1b1b9dd704ca9da5f10daa0634e5d197c9127d4 1401 1400 2022-10-10T00:34:59Z BuZz 32 wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == Synchronizing with syncevolution CalDav + CardDav == If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ==== Warning: TLS Chain validation issues ==== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = TODO = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. 72689c5a8280a0aa6b990e610c494f5dbee4479b 1404 1401 2022-10-10T10:26:56Z Wizzup 4 wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ==== Warning: TLS Chain validation issues ==== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = TODO = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. 63c1fd5a319997b40c515fa500f11f7a27d99b78 1405 1404 2022-10-10T10:29:32Z Wizzup 4 wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently. (Contributions welcome) <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ==== Warning: TLS Chain validation issues ==== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = TODO = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. 1649b430fa16e1c37154f859f12ccbf4f625e7ff 1407 1405 2022-10-10T10:37:48Z Wizzup 4 /* Files synchronization */ wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently. (Contributions welcome) <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ==== Warning: TLS Chain validation issues ==== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ... Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. 9ddc57ab0e90c11977155bc9054e2c9c542309c3 1408 1407 2022-10-10T10:38:58Z Wizzup 4 wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently. (Contributions welcome) <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ==== Warning: TLS Chain validation issues ==== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ... Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. = Further reading = The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync cb7f4beb008393c7a288e9bea4714df11193985f 1409 1408 2022-10-10T10:39:21Z Wizzup 4 /* NextCloud synchronizing */ wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently. (Contributions welcome) <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ==== Warning: TLS Chain validation issues ==== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ... Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. = Further reading = The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync 3451b705be3a8d626f36239d135b60888a8f3cf2 1411 1409 2022-10-10T10:44:45Z Wizzup 4 wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently. (Contributions welcome) <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == First, install syncevolution using '''sudo apt-get install syncevolution'''. If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ==== Warning: TLS Chain validation issues ==== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ... Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. = Further reading = The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync cb99ec0ae89c2c5c0885e73e7d07c38d68971c7d File:Syncevolution.png 6 202 1402 2022-10-10T10:26:36Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Syncevolution-2.png 6 203 1403 2022-10-10T10:26:48Z Wizzup 4 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Contacts 0 200 1406 1392 2022-10-10T10:31:18Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook |category=Office |packager=[[User:Wizzup]] }} = Contacts = Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format. TODO: Cover features, including import/export, online awareness/presence, telepathy e4e134a8da557dd0233e8d6040127107c47c2ff4 1410 1406 2022-10-10T10:43:33Z Wizzup 4 wikitext text/x-wiki {{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook |category=Office |packager=[[User:Wizzup]] }} = Addressbook application = The '''osso-addressbook''' application is the main interface to the Maemo contacts database, which in turn stores its contacts in the so called "Evolution Data Server" (EDS). The Maemo contacts are stored in a sqlite3 database located at '''/home/user/.local/share/evolution/addressbook/system/contacts.db''', but this database is managed by EDS and it's best to interface with EDS directly. TODO: Cover features, including import/export, online awareness/presence, telepathy == Telepathy integration == The address book also integrates directly with any messaging and telephone accounts that are set up, for example, if a jabber/XMPP account is online, the contacts of that account will be shown in the address book, as well as the online status of the contact. = Synchronisation = Check out the [[Sync]] page on how to synchronise your contacts. 3a9402dc509cfef275c5411ab89deacadcb37f76 File:Advertizing-in-nurdspace.jpg 6 204 1412 2022-10-10T11:52:21Z BuZz 32 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Propaganda 0 136 1413 1127 2022-10-10T12:00:31Z BuZz 32 wikitext text/x-wiki Place all memes of Maemo Leste you find here. == Propaganda == [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] [[File:Refuse-duopoly.jpg|200px]] == Memes == [[File:Os-addicts.jpg|200px]] == Various == [[File:MaemoSealeste.jpg|200px]] [[File:Advertizing-in-nurdspace.jpg|200px]] fbf3f96b4d40534b25f7de0820acf4b05195f7d5 1415 1413 2022-10-10T16:39:47Z BuZz 32 wikitext text/x-wiki Place all memes of Maemo Leste you find here. == Propaganda == [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] [[File:Refuse-duopoly.jpg|200px]] == Memes == [[File:Os-addicts.jpg|200px]] == Various == [[File:MaemoSealeste.jpg|200px]] [[File:Advertizing-in-nurdspace.jpg|200px]] [[Maemo-raised-bar.png]] 958ebc9400a57cd324a90f30c94915988859d2a8 1416 1415 2022-10-10T16:40:02Z BuZz 32 wikitext text/x-wiki Place all memes of Maemo Leste you find here. == Propaganda == [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] [[File:Refuse-duopoly.jpg|200px]] == Memes == [[File:Os-addicts.jpg|200px]] == Various == [[File:MaemoSealeste.jpg|200px]] [[File:Advertizing-in-nurdspace.jpg|200px]] [[File:Maemo-raised-bar.png|200px]] bdf9b1be15f5eca703de565b0adaf4de46824e77 File:Maemo-raised-bar.png 6 205 1414 2022-10-10T16:39:28Z BuZz 32 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Virtual Machine 0 60 1417 1180 2022-10-15T16:22:19Z Flok 58 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like: qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add: -usb -device usb-tablet to the command line. Alternatively if that dose not work you can instead add: -usb -device usb-mouse -machine vmport=off If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image. The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly. * Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted. * In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue. * Make sure you have a USB (not ps/2) mouse configured == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo -i dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 A fresh Maemo VM image will also lock the device screen by default. In Qemu this means the only way to gain access to the VM again is either via SSH or by sending the power button command. This happens after 30 seconds of no activity on the device. We recommend disabling this behaviour by going to the settings and then open the "display" applet - uncheck "Lock screen automatically". == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 14c73808a16f026323cabbdca3de771a05cc030d 1418 1417 2022-10-15T16:24:37Z Flok 58 /* virt-manager */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! === QEMU === In general something like: qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add: -usb -device usb-tablet to the command line. Alternatively if that dose not work you can instead add: -usb -device usb-mouse -machine vmport=off If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image. The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly. * Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted. * In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue. * Make sure you have a USB (not ps/2) mouse configured When the screensaver kicks in, press the virt-manager power button to unlock. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo -i dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 A fresh Maemo VM image will also lock the device screen by default. In Qemu this means the only way to gain access to the VM again is either via SSH or by sending the power button command. This happens after 30 seconds of no activity on the device. We recommend disabling this behaviour by going to the settings and then open the "display" applet - uncheck "Lock screen automatically". == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 35e8f9253f256e60c673d465ef4a73442c8bf0cb Development/Porting Packages 0 82 1419 755 2022-10-20T20:56:28Z Norayr 36 /* Porting existing Maemo Fremantle packages */ wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: <span class="image"></span> and this is the <code>48x48</code> size icon: <span class="image"></span> its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [[port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64|here]] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> = phoenix = login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages 2a0bc08f859d661723abcda08d31f135850c72fb 1420 1419 2022-10-20T20:57:09Z Norayr 36 /* phoenix */ wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: <span class="image"></span> and this is the <code>48x48</code> size icon: <span class="image"></span> its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [[port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64|here]] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages afe28aa7c4ca78729b0e04c3e54556e8d96c08c4 1423 1420 2022-10-20T21:08:04Z Norayr 36 /* cli apps */ wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [[https://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64|here]] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages 9c683dfd1434567b5f47a0dc6cf2cac2bd3644e9 1424 1423 2022-10-20T21:08:57Z Norayr 36 /* cli apps */ wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages 7835751ce23c3d3d4f3dd2ae839dbee9abe871cb 1425 1424 2022-10-20T21:16:31Z Norayr 36 /* icon */ wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * optimize it: <pre>optipng -strip all</pre> * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages cf9eefb886d021b017eeedaf5f6af742db8527b9 File:Maemo-cli icon appman sample v002.png 6 206 1421 2022-10-20T21:04:00Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Maemo-term icon v002 a001 48p.png 6 207 1422 2022-10-20T21:06:15Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Development/Tasks 0 92 1426 1013 2022-11-14T10:32:32Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || || |- | Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || || |- |} 9c65a63499330e102bd874f6550ead1ba123faf4 1427 1426 2022-11-14T10:33:01Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || || |- | Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || || |- |} 9d9397e5234587b1128ed39f332040abdf4d1d1c 1428 1427 2022-11-14T10:33:51Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || || |- | Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WIP/MOSTLY || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || || |- |} bdf46cd7762c94a6e57c5bfa46464e118ed97d1a 1429 1428 2022-11-14T10:37:35Z Wizzup 4 wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || || |- | Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WIP/MOSTLY || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || MOSTLY DONE || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || || |- |} 0457b2f8a819ccf1fb769d89bf7cdadb0fefe119 File:XT910Lockscreen.jpg 6 208 1430 2022-12-04T20:09:38Z Uvos 39 wikitext text/x-wiki A European XT910 running Maemo leste f61481747615335d90d93a3ee9208165dbe93fe2 Motorola Razr (2011) 0 209 1431 2022-12-04T20:10:24Z Uvos 39 Created page with "{{Infobox Device |image=[[File:XT910Lockscreen.jpg|250px]] |manufacturer=Motorola |codename=Spyder XT910, XT912 |dimensions=130x68.9x7.1mm |release_date=11-11-11 |soc=TI OMAP4..." wikitext text/x-wiki {{Infobox Device |image=[[File:XT910Lockscreen.jpg|250px]] |manufacturer=Motorola |codename=Spyder XT910, XT912 |dimensions=130x68.9x7.1mm |release_date=11-11-11 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors= |other= |category=Supported |sw_kernel=6.1 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Unkown |sw_audio=Unkown |sw_calls=Unkown |sw_sms=Unkown |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Unkown |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No |sw_fmrx= |sw_nfc= |sw_accelerometer=No |sw_compass=No |sw_gyro= No |sw_proximity=Yes |sw_als=No |sw_gps=Unkown |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * A Razr or Droid Razr or Droid Razr MAXX with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://github.com/tmlind/droid4-kexecboot.git # utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # Power off the Razr and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded Using a bluetooth headset: sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. == Additional Tips == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO logos can be flashed via fastboot flash logo.bin logo.bin ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> == Using a configured Leste sdcard in a different Razr == A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. [[Category:Device]] c8ad8a48c47afeaff2272c8da30ac1ddc900ac95 1432 1431 2022-12-04T20:11:12Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:XT910Lockscreen.jpg|250px]] |manufacturer=Motorola |codename=Spyder XT910, XT912 |dimensions=130x68.9x7.1mm |release_date=11-11-11 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors= |other= |category=Supported |sw_kernel=6.1 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Unkown |sw_audio=Unkown |sw_calls=Unkown |sw_sms=Unkown |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Unkown |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No |sw_fmrx= |sw_nfc= |sw_accelerometer=No |sw_compass=No |sw_gyro= No |sw_proximity=Yes |sw_als=No |sw_gps=Unkown |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=Unkown |sw_standbytime= }} == Installation == Hardware requirements: * A Razr or Droid Razr or Droid Razr MAXX with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://github.com/tmlind/droid4-kexecboot.git # utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # Power off the Razr and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded Using a bluetooth headset: sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. == Additional Tips == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO logos can be flashed via fastboot flash logo.bin logo.bin ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> == Using a configured Leste sdcard in a different Razr == A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. [[Category:Device]] b07574e6a8b1b56d62e952c4455c5d6f764e28f0 1433 1432 2022-12-04T20:11:57Z Uvos 39 Uvos moved page [[Razr]] to [[Motorola Razr (2011)]] wikitext text/x-wiki {{Infobox Device |image=[[File:XT910Lockscreen.jpg|250px]] |manufacturer=Motorola |codename=Spyder XT910, XT912 |dimensions=130x68.9x7.1mm |release_date=11-11-11 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors= |other= |category=Supported |sw_kernel=6.1 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Unkown |sw_audio=Unkown |sw_calls=Unkown |sw_sms=Unkown |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Unkown |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No |sw_fmrx= |sw_nfc= |sw_accelerometer=No |sw_compass=No |sw_gyro= No |sw_proximity=Yes |sw_als=No |sw_gps=Unkown |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=Unkown |sw_standbytime= }} == Installation == Hardware requirements: * A Razr or Droid Razr or Droid Razr MAXX with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://github.com/tmlind/droid4-kexecboot.git # utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # Power off the Razr and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded Using a bluetooth headset: sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. == Additional Tips == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO logos can be flashed via fastboot flash logo.bin logo.bin ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> == Using a configured Leste sdcard in a different Razr == A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. [[Category:Device]] b07574e6a8b1b56d62e952c4455c5d6f764e28f0 1435 1433 2022-12-04T20:18:29Z Uvos 39 wikitext text/x-wiki {{Infobox Device |image=[[File:XT910Lockscreen.jpg|250px]] |manufacturer=Motorola |codename=Spyder XT910, XT912 |dimensions=130x68.9x7.1mm |release_date=11-11-11 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors= |other= |category=unsupported |sw_kernel=6.1 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Unkown |sw_audio=Unkown |sw_calls=Unkown |sw_sms=Unkown |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Unkown |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No |sw_fmrx= |sw_nfc= |sw_accelerometer=No |sw_compass=No |sw_gyro= No |sw_proximity=Yes |sw_als=No |sw_gps=Unkown |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=Unkown |sw_standbytime= }} == Installation == Hardware requirements: * A Razr or Droid Razr or Droid Razr MAXX with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://github.com/tmlind/droid4-kexecboot.git # utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # Power off the Razr and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded Using a bluetooth headset: sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. == Additional Tips == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO logos can be flashed via fastboot flash logo.bin logo.bin ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> == Using a configured Leste sdcard in a different Razr == A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. [[Category:Device]] 65c737390ee7c32904806f91f284248e26505825 Razr 0 210 1434 2022-12-04T20:11:59Z Uvos 39 Uvos moved page [[Razr]] to [[Motorola Razr (2011)]] wikitext text/x-wiki #REDIRECT [[Motorola Razr (2011)]] b2e0d605bf41a953c8a43dc9e48925183e6b5c57 PinePhone 0 93 1436 1366 2023-01-15T18:48:33Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 8109ee097331391bf833e5f25a3b86dff1bf0f22 1437 1436 2023-01-15T18:49:05Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with: $ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 7175e0ae1254c3029927a9028346bfdc91c633b2 1438 1437 2023-01-16T07:19:17Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 7e26611396c096dcdda5deadf4c934a63edd726b File:Droid4 amazfish pairing failed 202301161800.png 6 211 1439 2023-01-16T14:19:12Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Amazfish in ham 202301141803.png 6 212 1440 2023-01-16T14:21:15Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Amazfish icon 202301141810.png 6 213 1441 2023-01-16T14:22:03Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:202301161835.png 6 214 1442 2023-01-16T14:58:45Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:202301161836.png 6 215 1443 2023-01-16T14:59:22Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:202301161837.png 6 216 1444 2023-01-16T14:59:31Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:202301161838.png 6 217 1445 2023-01-16T15:03:10Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:202301161839.png 6 218 1446 2023-01-16T15:03:21Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:202301161840.png 6 219 1447 2023-01-16T15:03:30Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:202301161846.png 6 220 1448 2023-01-16T15:03:43Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:202301161852.png 6 221 1449 2023-01-16T15:03:57Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg 6 222 1450 2023-01-16T15:09:11Z Norayr 36 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Extras/Amazfish 0 223 1451 2023-01-16T15:10:16Z Norayr 36 Created page with "{{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstard..." wikitext text/x-wiki {{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. Tap 'Scan devices'. Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. You should get the pairing request on the watch. If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png]] == Some pictures == <gallery> [[Image:Amazfish in ham 202301141803.png]] [[Image:Amazfish icon 202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish 455ceb524d6f6d678cea80e23118f1b84ae1ef6b 1452 1451 2023-01-16T15:10:52Z Norayr 36 wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png |250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. Tap 'Scan devices'. Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. You should get the pairing request on the watch. If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png]] == Some pictures == <gallery> [[Image:Amazfish in ham 202301141803.png]] [[Image:Amazfish icon 202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish cee6134e93b378b3290059219f72863417eae611 1453 1452 2023-01-16T15:12:00Z Norayr 36 wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. Tap 'Scan devices'. Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. You should get the pairing request on the watch. If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|300px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|500px]] == Some pictures == <gallery> [[Image:Amazfish in ham 202301141803.png]] [[Image:Amazfish icon 202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish 78c0b2e7052f3c845f639a12a111f4c133de93fe 1454 1453 2023-01-16T15:42:53Z Norayr 36 wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|300px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:File:202301161836.png|300px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|300px]] Tap 'Scan devices'. [[Image:202301161838.png|300px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|300px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|300px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|300px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|300px]] == Some pictures == <gallery> [[Image:Amazfish in ham 202301141803.png]] [[Image:Amazfish icon 202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish cf33d0d8b95ae3540fa10751cdb5673b3f5dcfb0 1455 1454 2023-01-16T15:43:23Z Norayr 36 wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png|300px]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|300px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:File:202301161836.png|300px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|300px]] Tap 'Scan devices'. [[Image:202301161838.png|300px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|300px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|300px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|300px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|300px]] == Some pictures == <gallery> [[Image:Amazfish in ham 202301141803.png]] [[Image:Amazfish icon 202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish 4c00b45aca25409baac1ff9ad3c8ba2ca7e9efdd 1456 1455 2023-01-16T15:45:30Z Norayr 36 wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png|500px]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|500px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:File:202301161836.png|500px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|500px]] Tap 'Scan devices'. [[Image:202301161838.png|500px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|500px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|500px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|500px]] == Some pictures == <gallery> [[Image:Amazfish in ham 202301141803.png]] [[Image:Amazfish icon 202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish 176fdf813413a22d63ee1d31aea517a9f096982b 1458 1456 2023-01-16T17:44:11Z Norayr 36 wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png|500px]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|500px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:202301161836.png|500px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|500px]] Tap 'Scan devices'. [[Image:202301161838.png|500px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|500px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|500px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|500px]] == Some pictures == <gallery> [[Image:Amazfish in ham 202301141803.png]] [[Image:Amazfish icon 202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish 36acf2085e193103e7ed3d8b7e8016bc838e5d3c 1459 1458 2023-01-16T17:44:58Z Norayr 36 /* Some pictures */ wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png|500px]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|500px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:202301161836.png|500px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|500px]] Tap 'Scan devices'. [[Image:202301161838.png|500px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|500px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|500px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|500px]] == Some pictures == <gallery> [[Image:Amazfish_in_ham_202301141803.png]] [[Image:Amazfish_icon_202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish 21a118fd9857de08aacc6c691388513b71b4643c 1460 1459 2023-01-16T17:47:14Z Norayr 36 wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png|500px]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|500px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:202301161836.png|500px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|500px]] Tap 'Scan devices'. [[Image:202301161838.png|500px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|500px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|500px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|500px]] == Some pictures == <gallery> [[Image:Amazfish in ham 202301141803.png]] [[Image:Amazfish icon 202301141810.png]] </gallery> == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish 36acf2085e193103e7ed3d8b7e8016bc838e5d3c 1461 1460 2023-01-16T17:48:41Z Norayr 36 wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == Install == [[Image:Amazfish in ham 202301141803.png|500px]] [[Image:Amazfish icon 202301141810.png|500px]] == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png|500px]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|500px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:202301161836.png|500px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|500px]] Tap 'Scan devices'. [[Image:202301161838.png|500px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|500px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|500px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|500px]] == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish f82a5f9107d35efdc2bf3d34a746f889a3cea76b 1462 1461 2023-01-16T17:49:42Z Norayr 36 /* Install */ wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == Install == find in Application manager [[Image:Amazfish in ham 202301141803.png|500px]] or <pre> apt-get install harbour-amazfish </pre> and this is it: [[Image:Amazfish icon 202301141810.png|500px]] == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png|500px]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|500px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:202301161836.png|500px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|500px]] Tap 'Scan devices'. [[Image:202301161838.png|500px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|500px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|500px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|500px]] == Other links == * https://github.com/norayr/harbour-amazfish * https://openrepos.net/content/piggz/amazfish d1e751509fb73ae6c13033ebc8ddc18a66fa8363 1463 1462 2023-01-16T17:50:37Z Norayr 36 /* Other links */ wikitext text/x-wiki {{Infobox Package |image=[[Image:202301161852.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict |category=Utilities |packager=[[User:Norayr]] }} == What is this. == Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches. Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices: <pre> There are 3 tiers of supported devices: Gold These are devices I have, have tested and will try not to break any functioanlity for an include: Amazfit Bip Amazfit GTS Amazfit GTR2 Pinetime Infinitme Bangle.js Silver These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include: Amazfit BipS Amazfit Bip Lite Amazfit GTS2 I do not promise not to break funcaionality in these, but will fix where I can Bronze These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices. MiBand 2/3/4 Amazfit Cor </pre> == Install == find in Application manager [[Image:Amazfish in ham 202301141803.png|500px]] or <pre> apt-get install harbour-amazfish </pre> and this is it: [[Image:Amazfish icon 202301141810.png|500px]] == How to pair == Run the service: <pre> /usr/libexec/amazfish-launcher </pre> run the app from the menu, or, it would be good to run it for the first time also in console to see the output: <pre> /usr/libexec/amazfish-ui-launcher </pre> On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon: [[Image:Droid4 amazfish pairing failed 202301161800.png|500px]] and the amazfish app outpit is: <pre> void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() void DaemonInterface::pair(const QString&, QString) kf.bluezqt: PendingCall Error: "No discovery started" void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected void DaemonInterface::pair(const QString&, QString) void DaemonInterface::pair(const QString&, QString) void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: pairing void DaemonInterface::changeConnectionState() void DaemonInterface::changeConnectionState() qml: disconnected </pre> Now the app started, and at first start will ask to write a name and configure your profile. On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard. [[Image:202301161835.png|500px]] Then on the main application screen tap on 'Pair watch'. If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again. [[Image:202301161836.png|500px]] You'll see list of watches. I chose Amazfit Bip. [[Image:202301161837.png|500px]] Tap 'Scan devices'. [[Image:202301161838.png|500px]] Without this though we see the running circle, the watch won't be found. When you see the watch, tap on it, or 'Stop scan' and then choose the watch. [[Image:202301161839.png|500px]] You should get the pairing request on the watch. (btw, the hardware address of the watch is autogenerated upon every reset) [[Image:202301161840.png|500px]] If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner. That means it thinks everything is right and the watch is connected. Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch. [[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]] If not, repeat the whole sequence again: unpair, and try pairing again. == How to use == When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications. Notifications routed via libnotify should be shown from all applications. Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch. Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day. Now the data will be there! [[Image:202301161852.png|500px]] == Other links == * hhttps://github.com/piggz/harbour-amazfish * https://openrepos.net/content/piggz/amazfish 1ba9e5bb673012b80e83ca8052330c6c5a38f578 Motorola Xoom2 MZ609 0 224 1457 2023-01-16T16:25:09Z Wizzup 4 Created page with "{{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Fleming MZ609 |dimensions= |release_date=TODO |soc=TI OMAP4430 |..." wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Fleming MZ609 |dimensions= |release_date=TODO |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=TODO |video=PowerVR SGX540 |audio= |network= |storage=TODO |usb= |camera= |sensors=TODO |other= |category=Supported |sw_kernel=6.1.x |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=N/A |sw_screen=No |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=? |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/mz609/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip TODO CHANGE # flash-droid-4-fw.sh TODO CHANGE # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: TODO === Updating Android === TODO === Setting up kexecboot === TODO Now, assuming you are in the working directory, install kexecboot: <pre> </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === [[Category:Device]] 8cb0a2f24ec612140e5ef937e46bfda4fce5f7a0 Development/Porting Packages 0 82 1464 1425 2023-01-16T18:47:57Z Norayr 36 /* Porting existing Maemo Fremantle packages */ wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle/free/ * http://repository.maemo.org/extras-testing/pool/fremantle/free/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * optimize it: <pre>optipng -strip all</pre> * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages e93b1ad4a02f298a6a9f89adab03b72f3c29dbfb 1465 1464 2023-01-16T21:35:46Z Norayr 36 /* Porting existing Maemo Fremantle packages */ wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle/source/free/ * http://repository.maemo.org/extras-testing/pool/fremantle/source/free/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * optimize it: <pre>optipng -strip all</pre> * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages 314db70dd09f4e8d301f7e0ee46a6f10adf45bf0 1466 1465 2023-01-16T21:43:22Z Norayr 36 /* Porting existing Maemo Fremantle packages */ wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/ * http://repository.maemo.org/extras-testing/pool/fremantle-1.3/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * optimize it: <pre>optipng -strip all</pre> * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages 800c153b545cba71101119b74e09fda2003e1f3f 1467 1466 2023-01-16T21:44:49Z Norayr 36 wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/ * http://repository.maemo.org/extras-testing/pool/fremantle-1.3/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way. you need to have `sharutils` installed. (app-arch/sharutils in gentoo). * prepare a `48x48` png file. * optimize it: <pre>optipng -strip all</pre> * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages 8cef2f379b83050a47208cfb9419766ef9e0e359 PinePhone 0 93 1468 1438 2023-01-18T09:12:00Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/blob/main/suspend.c === Volume Applet === Volume applet (https://github.com/maemo-leste/maemo-statusmenu-volume) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] ab23b3f7ce42f58cb45af9768b836774d9c9097b 1469 1468 2023-01-18T09:12:45Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet (https://github.com/maemo-leste/maemo-statusmenu-volume) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 37fe02a8ae0e72a314db0b181c888f5a68a59b71 1470 1469 2023-01-18T09:14:16Z Rafael2k 54 /* How to take a picture */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. Work is ongoing to import pinhole camera app: https://github.com/piggz/harbour-pinhole/ You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet (https://github.com/maemo-leste/maemo-statusmenu-volume) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 8c5b1cf3b5e55c64dabb7da62bd4ded6d3a3d344 1471 1470 2023-01-18T09:15:25Z Rafael2k 54 /* Volume Applet */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is not ready yet. Work is ongoing to import pinhole camera app: https://github.com/piggz/harbour-pinhole/ You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] fe8acb8b9bbe2567f19095f26f0d082687551a97 1473 1471 2023-01-25T07:13:01Z Rafael2k 54 /* How to take a picture */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/ To open the (pinhole) camera from the terminal: $ harbour-pinhole Or open it from Maemo desktop "Camera" icon. In order to trigger auto-focus: $ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1 Or trigger autofocus using the commands to start and stop manually: $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1 then wait till it gets the focus where you want, then $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1 You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] aba0e6e81e16f239b17be33cc2d1caf92a960a96 1474 1473 2023-01-25T07:13:19Z Rafael2k 54 /* How to take a picture */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/ To open the (pinhole) camera from the terminal: $ harbour-pinhole Or open it from Maemo desktop "Camera" icon. In order to trigger auto-focus: $ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1 Or trigger autofocus using the commands to start and stop manually: $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1 then wait till it gets the focus where you want, then $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1 You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 296950b5af42152f0e844599ea93f2d8a6a927bf 1475 1474 2023-01-25T07:31:48Z Rafael2k 54 /* How to take a picture */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/ For now only the rear camera (ov5640) is supported. Work in ongoing for front camera support. To open the (pinhole) camera from the terminal: $ harbour-pinhole Or open it from Maemo desktop "Camera" icon. In order to trigger auto-focus: $ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1 Or trigger autofocus using the commands to start and stop manually: $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1 then wait till it gets the focus where you want, then $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1 You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 7288f75fa9caff7f2649904cee0885d74d88a198 1476 1475 2023-01-30T07:15:38Z Rafael2k 54 /* How to take a picture */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/ Both cameras (rear and front) are supported. Work in ongoing to improve the camera app. To open the (pinhole) camera from the terminal: $ harbour-pinhole Or open it from Maemo desktop "Camera" icon. In order to trigger auto-focus: $ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1 Or trigger autofocus using the commands to start and stop manually: $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1 then wait till it gets the focus where you want, then $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1 You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === Customize the Keyboard === TODO: write this === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] e1fb26b6bb6cb9528af24df1afe0588f58994b8e 1477 1476 2023-03-07T14:29:13Z Rafael2k 54 wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === ''Note: Currently '''not working''''' '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.'' The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions: $ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file. Mount the first partition and enter it: $ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave the first partition and unmount it: $ cd ~ $ sudo umount /mnt Mount the second partition and enter it: $ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt $ cd /mnt Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Leave the second partition and unmount it: $ cd ~ $ sudo umount /mnt The image is now ready to be installed to the eMMC. ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/ Both cameras (rear and front) are supported. Work in ongoing to improve the camera app. To open the (pinhole) camera from the terminal: $ harbour-pinhole Or open it from Maemo desktop "Camera" icon. In order to trigger auto-focus: $ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1 Or trigger autofocus using the commands to start and stop manually: $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1 then wait till it gets the focus where you want, then $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1 You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === PinePhone Keyboard === First of all, make sure you have the latest firmware loaded in the keyboard (firmware is here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard/tree/master/firmware/build and userland here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard ): $ ppkb-i2c-flasher -e i2c -i fw-user.bin write reset Load the xkb layout ( available here: https://codeberg.org/phalio/ppkb-layouts/src/branch/main/xkb ) $ setxkbmap pp altgr === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 4bdb6852730fb5b6858576e994b363d28a6d6ad1 Getting Started 0 105 1472 1117 2023-01-22T19:27:00Z Pomputer 60 /* Installation to SD Card */ wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with '''cat /proc/partitions''' Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = Expand the root partition to fill SD card = A helpful script is included to expand the root partition to fill the microSD card. After booting and logging in to root, execute: /etc/expandcard.sh This will expand the root partition to fill the microSD card using resize2fs. = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = == Lock Code (applies to N900 only) == * Default lockcode is "12345" * Lockcode can only be changed/used on [[Nokia_N900|N900]], since the current implementation depends on a special "cal" partition. QEMU and all other Leste supported devices do not have it. (TODO: Confirm if N9 and N950 have it too) = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] 478f9014bf1f5e610634fa614f41f1dc606e2f12 Nokia N900 0 48 1478 1277 2023-03-07T20:30:55Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Work in progress... == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 8848f9af4af4a869a166d016a69b3cfde776ab2f 1479 1478 2023-03-07T23:15:54Z Arno11 61 /* Overclocking / Undervolting */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content of opp-table { opp1 opp2 opp3 opp4 opp5 opp6 }; By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close And still as root <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version> by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu" Installing cpufrequtils is useful to switch frequency governors. Prefer "conservative" instead of "ondemand" mode As root <code>cpufreq-set -c 0 -g conservative</code> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] a4ab7259b434ce753968f3ddcc34c44e04e080a2 1480 1479 2023-03-08T07:35:23Z Arno11 61 /* Overclocking / Undervolting */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content of opp-table { opp1 opp2 opp3 opp4 opp5 opp6 }; By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close And still as root <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu" Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor "Performance" governor locks N900 at 800MHz As root <code>cpufreq-set -c 0 -g conservative</code> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 27437b2d755d07baf07586aab10e10ae104e2762 1481 1480 2023-03-08T07:37:25Z Arno11 61 /* Overclocking / Undervolting */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content of "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] ae9cc7f7b7a3dd499c6e3a153b02c5d0ae104c38 1482 1481 2023-03-08T07:43:59Z Arno11 61 /* Overclocking / Undervolting */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 2b6182af6a32fc80557b80452dd91cc5a9414b63 1483 1482 2023-03-08T09:48:32Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == Work in progress... == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 6a2d983f0faf7767b1ee4a83863d9902cefcefe8 1484 1483 2023-03-08T10:35:35Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == Work in progress... === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit /etc/default/zramswap as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] e3c5a7fe29c8131c53a92e8623ffc29cc8bc052b 1485 1484 2023-03-08T11:03:18Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == Work in progress... === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] f5b4ced5a9e895990bd2d559a7f957b5c04484b9 1486 1485 2023-03-08T14:30:27Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == Work in progress... == SD Card == To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 0797663cf6877cfd4ed02042d7110aabef669ee4 1487 1486 2023-03-08T14:30:55Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> === Tips / Tweaks === Work in progress... == SD Card == To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] dfa44a8b7dfa06409855c39dd4dc4cf20b9531b1 1488 1487 2023-03-08T14:31:19Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == Work in progress... == SD Card == To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 0797663cf6877cfd4ed02042d7110aabef669ee4 1489 1488 2023-03-08T14:31:52Z Arno11 61 /* SD Card */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> (Wait a bit) Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == Work in progress... === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] c05ef320a4a4bf7be2e2a3763239b66f0e52ebf6 1490 1489 2023-03-10T09:13:55Z Arno11 61 /* Overclocking / Undervolting */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == Work in progress... === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 92604c4454660c8cf712f6febcc119d8054c6225 1491 1490 2023-03-10T09:16:35Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code> <code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /tmp/omap3-n900.dts</code> (then the funny part...) <code>nano /tmp/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /tmp/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 0ad55325ef0e0fa725f4b18259ad42d5503f7aeb 1492 1491 2023-03-14T08:20:52Z Arno11 61 /* Overclocking / Undervolting */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 28d3b430c3b897b6c0a7fc1d1d29a9670efd07b7 1493 1492 2023-03-18T09:33:42Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file: sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576 You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 4e31cc85b2af741500c66d9dd7c04dc885a67602 1494 1493 2023-03-18T09:34:27Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === In progress... To create a simple swap file: sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576 You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] eee06e346de1f751c763b3ce68499b3ae2da517e 1495 1494 2023-03-18T09:35:48Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === In progress... To create a simple swap file: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] c4b1d57baa40e28a9bbb30a78edf209cd6cb6818 Nokia N900 0 48 1496 1495 2023-03-18T09:48:50Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually and software acceleration is not working very well on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === ==First method== To create a simple swap file: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> ==Second method== Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] a81382e3e60f85acf1c6185e6349d7309fdf6571 1497 1496 2023-03-18T09:50:55Z Arno11 61 /* Video playing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === ==First method== To create a simple swap file: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> ==Second method== Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] d745607d43b32d983ce5a74037a383da2b44cbed 1498 1497 2023-03-18T09:53:46Z Arno11 61 /* First method */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === ==SWAP== To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> ==Second method== Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 62d6bafff5a0bd2ab5ffb724bd7fbf9d2ea1ef3f 1499 1498 2023-03-18T09:55:03Z Arno11 61 /* SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === ==First method== To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> ==Second method== Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 7fd1db78cc3202e1497cd93cc54a77954349d088 1500 1499 2023-03-18T09:59:06Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. == More SWAP == ==First method== To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> ==Second method== Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 301c285db6da70cac310d35143c4388b92d430cb 1501 1500 2023-03-18T09:59:43Z Arno11 61 /* First method */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. == More SWAP == ===First method=== To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> ==Second method== Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] bf1525cea876185218f36f9ef9bba59911ecbe7f 1502 1501 2023-03-18T10:00:56Z Arno11 61 /* Second method */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. == More SWAP == ===First method=== To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> ===Second method=== To extand existing swap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 6c28ae8c2addc7ac6e33d3fe10783d9919a6148f 1503 1502 2023-03-18T10:03:30Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing swap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] b8b3d31078d0be5d451cc55eeff6d9012521821e 1504 1503 2023-03-19T13:35:59Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: sdl Only unable Direct rendering, Double buffering and Disable screensaver (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Disable everything if you are using Overclock (if not: unable Allow frame drop) Hardware decoding: None Prefer 360p - 480p max video format === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] aa30c5f17765c32ef9ab7ae859ebaa740da2b4ae 1506 1504 2023-03-24T12:30:36Z Arno11 61 /* Video playing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Hardware acceleration is not working actually on N900. But video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] 8d56df15f42bfb6d5da79d6d606d1a6de5ecfde9 1507 1506 2023-03-24T12:38:25Z Arno11 61 /* Video playing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Old status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~300mW || Device does not enter RET or OFF mode |} [[Category:Device]] dc2c9cae6b59b01ea43b90873220eb847d6afc70 1509 1507 2023-04-08T16:41:30Z Arno11 61 /* Old status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] be421d9e02083ba17737e3ec7529fd87d4fc3e85 1510 1509 2023-04-08T17:20:33Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === First thing to do: Edit /home/user/.config/retroarch/retroarch.cfg menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" Some emulators are working well: - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Retroarch recommended settings: To avoid crashes, use only "glui" Menu Driver Driver: Input driver X, joypad driver linuxraw, video driver gl, audio driver null, location driver null Video: Aspect ratio core provided, Integer scaler no, Threaded Video yes, Vertical Sync yes, Hard gpu Sync no, Audio: Audio Enable no Input: (very important) Unified Menu Controls yes Input User 1 Binds (keyboard settings) Directory: (very important) Core /home/user == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 152ea37282510b1f524b372e2a7b5d397a531f3f 1511 1510 2023-04-08T17:27:20Z Arno11 61 /* Retroarch */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d1f936405adc8481d1aca9210510cceaeaae51f3 1512 1511 2023-04-08T17:33:14Z Arno11 61 /* Retroarch */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 227efad202a75d59d20d81ea8629df577ac1b769 1513 1512 2023-04-08T17:34:16Z Arno11 61 /* Retroarch */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=5.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes, no UI |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=300mW (needs kernel work) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 4a0738f28f5c18035fc27d61f42afc696570938a 1514 1513 2023-04-08T17:40:46Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 19043455e37d34bd91fecc1757a2d36ea1ed730f 1515 1514 2023-04-08T17:47:12Z Arno11 61 /* Retroarch */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking / Undervolting == Nokia N900 is stable using following scalable frequencies: 250-500-600-720-800MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-800000000 { opp-hz = < 0x00 0x2faf0800 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] bfaab4131909601e17129983be628a32d7f2a6c4 1516 1515 2023-04-08T17:57:57Z Arno11 61 /* Overclocking / Undervolting */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 570c2cdb66a445f226fdcf41f267b71bf61f8ca1 1517 1516 2023-04-08T17:59:45Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" By a new opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] e1415f62941622f661b379eaa4de9272c58e88f8 1518 1517 2023-04-08T18:00:29Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 380a0ce7d22a918624f5c1f87aefd41c59c76a9f 1519 1518 2023-04-08T18:02:23Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 26b48e0a0f75f418e08f3505806c0418bd0763e2 1520 1519 2023-04-08T18:23:05Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] bcef4992f841a45950d27fd08ca17ec735fe3687 1521 1520 2023-04-08T19:21:38Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 800MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d7c42e14f4a7cbb98706ea752b93706abbd3894d 1522 1521 2023-04-08T19:29:20Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 53a7d21e4e5cd2e92b2dd4de4c0771bb7fe577d4 1523 1522 2023-04-09T08:36:28Z Arno11 61 /* Power Management */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 40mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 8250ed5fc929d31d8034a9a7600e772617ba8edc 1524 1523 2023-04-09T08:39:22Z Arno11 61 /* Power Management */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] fb7c0f72f31c67b6aeb877b49e3f272028a6b7da 1525 1524 2023-04-10T21:34:08Z Sicelo 5 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 1ff55aff1431c6553ad25b8249fb677031433602 1527 1525 2023-04-22T01:36:01Z Astra 64 Add info about having the keyboard slide open to select the U-boot option wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d5748dd27709f299462e958e74ce220395027e80 1528 1527 2023-05-06T12:12:48Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.2 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone, might require pulseaudio audio filters and UCM files |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 5d90e264a5c89d79c6cc6fe96781de8910528567 1529 1528 2023-05-06T12:24:51Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.2 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone, might require pulseaudio audio filters and UCM files |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] bb3661ffcd79477d58e8be68309b4c935ab8bf41 1530 1529 2023-05-06T12:27:03Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.2 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters and UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 46d8afe46ee8d3e5a441190676b3d93472b5b433 1531 1530 2023-05-06T12:55:06Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, no ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters and UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 278b835808e7cee961687cd9a4038de1058027aa 1537 1531 2023-06-16T21:15:36Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration || UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters || UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 3c23f3ceb05d9e8d1ec08ba4ccc807d813dd2baa 1538 1537 2023-06-16T21:19:43Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Opera Mini 8 is a temporary solution. To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar) Then from microemulator directory run: <pre>java -jar microemulator-2.0.4.jar</pre> On the main screen: / File / Open Midlet File and choose your Opera Mini jar file Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen) Once loaded and installed, click on resize button to fit to N900 screen. (Be patient, first loading and settings are slow) === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration, UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] b8dd5d3b616b8a6f3c7d0ab8ccac45df3b7e25d0 1541 1538 2023-06-30T12:55:32Z Arno11 61 /* Web browsing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Links2 is currently the faster and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <pre>Ctl + Maj + N</pre> to disable Hildon composition -links2 performances will increase a lot- Press <pre>Ctl + Maj + N</pre> if you want to enable Hildon composition again. === Retroarch === '''First thing to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration, UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 975d6969abf73b7fbc4338e02bf3682923720f95 1542 1541 2023-06-30T12:56:13Z Arno11 61 /* Retroarch */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Links2 is currently the faster and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <pre>Ctl + Maj + N</pre> to disable Hildon composition -links2 performances will increase a lot- Press <pre>Ctl + Maj + N</pre> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration, UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 42d01776837c7a944d0d88d33b9c55bc1c53c92d 1543 1542 2023-06-30T12:58:13Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Links2 is currently the faster and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <pre>Ctl + Maj + N</pre> to disable Hildon composition -links2 performances will increase a lot- Press <pre>Ctl + Maj + N</pre> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 95b0e72146211a3ba5d06ff20c9f2d2070522556 1544 1543 2023-06-30T13:02:59Z Arno11 61 /* Web browsing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <pre>Ctl + Maj + N</pre> to disable Hildon composition -links2 performances will increase a lot- Press <pre>Ctl + Maj + N</pre> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] a98060b67858ec7b7d0368f3240d634c0ab20dd1 1545 1544 2023-06-30T13:08:35Z Arno11 61 /* Web browsing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Maj + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Maj + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] b5b9bc050011d3b13a25bb0d5bfae5b60d6576a8 Motorola Droid 4 0 50 1505 1368 2023-03-21T11:27:51Z Pavel 9 wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.18.x |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded. So you should do: <pre> sudo apt install firmware-ti-connectivity sudo modprobe hci_uart sudo hciconfig hci0 up sudo hcitool lescan </pre> == Stuff to try == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. ==== Torch ==== The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below): <source> ##Install the prerequisites $ sudo apt install i2c-tools ## Turn LED on in torch mode $ sudo i2cset -y 2 0x53 0x10 0x1a ## Turn LED on in privacy indication mode $ sudo i2cset -y 2 0x53 0x10 0x19 ## Turn LED off (in any mode) $ sudo i2cset -y 2 0x53 0x10 0x18 ## Use LED for doing a hella bright flash for some time once and then turn off $ sudo i2cset -y 2 0x53 0x10 0x1b </source> == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] d516d4e7b298df27bb8cef51fd7006458a1be30b 1508 1505 2023-03-25T18:18:56Z Wizzup 4 /* HDMI */ wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor |other= |category=Supported |sw_kernel=5.18.x |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded. So you should do: <pre> sudo apt install firmware-ti-connectivity sudo modprobe hci_uart sudo hciconfig hci0 up sudo hcitool lescan </pre> == Stuff to try == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> If one wants to mirror the screen on HDMI, this can be done like so, for landscape: <pre> xrandr --newmode "960x540_60.00" 40.75 960 992 1088 1216 540 543 548 562 -hsync +vsync xrandr --addmode HDMI-1 "960x540_60.00" xrandr --output HDMI-1 --mode "960x540_60.00" --same-as DSI-1 </pre> For rotation, something like this might or might not work: <pre> xrandr --newmode "960x540_60.00ROT" 43.00 544 576 632 720 960 963 973 996 -hsync +vsync xrandr --addmode HDMI-1 "960x540_60.00ROT" xrandr --output HDMI-1 --mode "960x540_60.00" --same-as DSI-1 --rotate right </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. ==== Torch ==== The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below): <source> ##Install the prerequisites $ sudo apt install i2c-tools ## Turn LED on in torch mode $ sudo i2cset -y 2 0x53 0x10 0x1a ## Turn LED on in privacy indication mode $ sudo i2cset -y 2 0x53 0x10 0x19 ## Turn LED off (in any mode) $ sudo i2cset -y 2 0x53 0x10 0x18 ## Use LED for doing a hella bright flash for some time once and then turn off $ sudo i2cset -y 2 0x53 0x10 0x1b </source> == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 717bcc46c01d0014883ad4347a6310e83aa1b3e4 PinePhone 0 93 1526 1477 2023-04-20T11:37:13Z Supositware 63 Working eMMC installations step wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, mount the image to a loop device. $ sudo losetup -P /dev/loop0 maemo-leste-*-arm64-pinephone-*.img Mount the second partition to /mnt and the first partition to /mnt/boot and enter /mnt: $ sudo mount /dev/loop0p2 /mnt $ sudo mount /dev/loop0p1 /mnt/boot $ cd /mnt Use the editor of your choice to edit <code>/mnt/etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Now we need to edit <code>boot.scr</code>. For that you will need to download <code>boot.txt</code> from Maemo Leste github: $ cd /mnt/boot $ sudo wget https://raw.githubusercontent.com/maemo-leste/pine64-uboot/master/boot.txt Now we do the same step as we did for the fstab, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code> in <code>boot.txt</code>. To regenerate <code>boot.scr</code> you need to install <code>u-boot-tools</code> first to be able to use mkimage. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave /mnt and unmount the partitions: $ cd ~ $ sudo umount -R /mnt We can now save the image we just modified using dd: $ sudo dd if=/dev/loop0 of=maemo-leste-1.0-arm64-pinephone-EMMC.img The image is now ready to be installed to the eMMC. We can now remove the loop device we created earlier: $ sudo losetup -d /dev/loop0 ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/ Both cameras (rear and front) are supported. Work in ongoing to improve the camera app. To open the (pinhole) camera from the terminal: $ harbour-pinhole Or open it from Maemo desktop "Camera" icon. In order to trigger auto-focus: $ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1 Or trigger autofocus using the commands to start and stop manually: $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1 then wait till it gets the focus where you want, then $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1 You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === PinePhone Keyboard === First of all, make sure you have the latest firmware loaded in the keyboard (firmware is here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard/tree/master/firmware/build and userland here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard ): $ ppkb-i2c-flasher -e i2c -i fw-user.bin write reset Load the xkb layout ( available here: https://codeberg.org/phalio/ppkb-layouts/src/branch/main/xkb ) $ setxkbmap pp altgr === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] dfe689a9ba8748f622b163cf72525e29d593ab86 Status 0 64 1532 1372 2023-05-11T08:13:16Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it, blueman-manager can be used || |- | [[Status/Browser|Browser]] || WIP || ? || qtwebbrowser works |- | [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works |- | [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon || |- | [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? || |- | [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue] |- | [[Status/Media Player|Media Player]] || WIP || OMP (open media player) being ported, listening to radio streams works, local music/video coming || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo |} ae65cb2889d90213f90ec6d212bf793f5c587bf8 1533 1532 2023-05-11T08:16:31Z Wizzup 4 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7 |- | Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it, blueman-manager can be used || |- | [[Status/Browser|Browser]] || WIP || ? || qtwebbrowser works |- | [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works |- | [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon || |- | [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? || |- | [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900] |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Works fine, theme might look a bit off on higher resolution displays |- | [[Status/Media Player|Media Player]] || WIP || OMP (open media player) being ported, listening to radio streams works, local music/video coming || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo |} 51cb74e4801bcccff6c59e62cb59e1c60e4d314e Motorola Droid 3 0 151 1534 1249 2023-05-13T08:14:00Z Dogo6647 65 Added an idiot-proof short note to ensure the user installs kexecboot correctly wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.15.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh on bionic-clown-boot Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 <s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> (Haven't seen them on 5.15) Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] 716af0d41079d51dafe1f448b3e79208d7ebbea1 1535 1534 2023-05-13T20:46:47Z Dogo6647 65 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=5.15.0 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh on bionic-clown-boot Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 <s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x) Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] 12c01af198ced591d325e3acdb31925cceb9a766 1536 1535 2023-05-13T21:02:45Z Dogo6647 65 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=6.1.9 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Untested |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh on bionic-clown-boot Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 <s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x) Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] a06507447dcc94cda7a425a1460f7fe6e8311186 1539 1536 2023-06-18T23:01:14Z Dogo6647 65 wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=6.1.9 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=No |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh on bionic-clown-boot Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 <s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x) Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] 229167c067c7b94309c83b2ef72d44d8236cf7e4 1540 1539 2023-06-18T23:29:32Z Dogo6647 65 /* Notes */ wikitext text/x-wiki {{Infobox Device |image= |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=6.1.9 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=No |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/ # Latest maemo-leste-1.0-armhf-bionic-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh on bionic-clown-boot Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x) It might be a power-management-related issue, or a GPU issue (last log line shows something about OMAP complaining about DRM), or something else. The emergency shell works just fine with no hangs at all. Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] 63ed75100060ccdef6f824582ce5004276ca12f4 Nokia N900 0 48 1546 1545 2023-06-30T13:13:22Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Maj + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Maj + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 8eb150e70921d7f1a21d384f840bc664cde6cb77 1547 1546 2023-07-04T07:06:55Z Arno11 61 /* Web browsing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === First method: To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> Second method: To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024. See Get Started Wiki. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 150cbadeeb1d85d6fdd446c7eb679765b732889e 1548 1547 2023-07-10T14:04:29Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 58f389fd22a4b1c976749f10062cafc12846179a 1551 1548 2023-07-25T10:51:54Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] c6c956005554e5421d0fcd6c9f539439e1aa4a2c 1552 1551 2023-07-28T10:29:03Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] a456f6d0e3663946ddbbf6684f4c339aa1f746e5 1553 1552 2023-08-04T14:43:26Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 19c42210abcea63755434c2650ac30b8362be172 1554 1553 2023-08-13T17:24:00Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains, sound is good. Works in 2G, 3G and 3.5G mode |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Bluetooth driver is needed |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || WIP || TX only (hardware limitation). Sending pulses causes a kernel oops without specific dts parameters |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d892b0ccdf245631521881a673754282c6009c3e 1555 1554 2023-08-19T18:23:32Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains, sound is good. Works in 2G, 3G and 3.5G mode |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Bluetooth driver is needed |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || WIP || TX only (hardware limitation). Sending pulses causes a kernel oops without specific dts parameters |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 27ff1546ba6c7ee13a5b8a15cfb2f6278766fc7a 1556 1555 2023-08-19T18:33:14Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains, sound is good. Works in 2G, 3G and 3.5G mode |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Bluetooth driver is needed |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with specific dts parameters. |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] a0d968f628a90c8740fad41aeef701d72ef79d5a 1557 1556 2023-08-19T19:02:10Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains, sound is good. Works in 2G, 3G and 3.5G mode |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> Select 'headset' in Pavucontrol |- | FM Receiver || No || Bluetooth driver is needed |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with specific dts parameters. |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 1cb49488f82d97a974ea65102d867469c1ac98a7 1558 1557 2023-08-31T14:55:07Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Bluetooth driver is needed |- | Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes/WIP || TX only (hardware limitation). Works with specific dts parameters and pwm-ir-tx driver. Unstable |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 4491d29c50721a65327e089e7725c1b39d6293c3 1560 1558 2023-09-04T09:45:14Z Sicelo 5 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes/WIP || TX only (hardware limitation). Works with specific dts parameters and pwm-ir-tx driver. Unstable |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] aaebf3982800a48f5d309a02053f90dda0914fe1 1562 1560 2023-09-04T21:52:09Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes/WIP || TX only (hardware limitation). Works with the old ir-rx51 driver (patched), overclock is needed |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 0cee8a5fce57741bd50671ea1097f9c495ee63e0 1563 1562 2023-09-05T16:21:06Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with the old ir-rx51 driver (patched), overclock is needed |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 8048f892eef7f3c0abbb6710f63b5716f8059959 1564 1563 2023-10-03T08:03:54Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP === To create a simple swap file if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d3f6667f505f7355a13aaad472cbe14ccc76f271 1565 1564 2023-10-03T08:16:30Z Arno11 61 /* More SWAP */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz overclock @850MHz |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 211b6b5492bdf2bf88a9db658b938da4244bbba9 1568 1565 2023-10-20T11:13:10Z Halftux 7 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card === To avoid overall slowness, please only use SDHC Class 10 or better. === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] e72ab0c894d887c501acd98c6770a77f3e78258e 1569 1568 2023-11-20T17:44:23Z Arno11 61 /* SD Card */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). (Note: using a fast microsd card, overclock, custom transitions.ini file and using xorg at 16bpp make Leste running as fast as Fremantle at 850-900MHz now) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 5eee172b8227ecf9084cf7d544cf421fda059e2a 1570 1569 2023-11-20T17:58:01Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). (Note: using a fast microsd card, overclock, custom transitions.ini file and using xorg at 16bpp make Leste running as fast as Fremantle at 850-900MHz now) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] a81649d3537ce3176bf939b25faacf589175c234 1571 1570 2023-11-20T18:00:56Z Arno11 61 /* More SWAP / SWAP activation */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). (Note: using a fast microsd card, overclock, custom transitions.ini file and using xorg at 16bpp make Leste running as fast as Fremantle at 850-900MHz now) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: emmc swap is faster than sd card swap) Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] e13071c7ae9f74e76e2f3ac063534f29ae1b96df 1572 1571 2023-11-20T18:04:00Z Arno11 61 /* Running Xorg at 16bpp */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). (Note: using a fast microsd card, overclock, custom transitions.ini file and using xorg at 16bpp make Leste running as fast as Fremantle at 850-900MHz now) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: emmc swap is faster than sd card swap) Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 1172d74e04789161ec7cd5af06b96d786cb0f66b 1573 1572 2023-11-22T08:38:24Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp6-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x02 >; turbo-mode; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: emmc swap is faster than sd card swap) Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 37e24970358eeb57387299701cf0eb798c0b078f 1574 1573 2023-11-22T14:07:12Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: emmc swap is faster than sd card swap) Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 83a1e890032dd318ba7523e6b22fb22df157d7a0 1575 1574 2023-11-22T14:10:22Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: emmc swap is faster than sd card swap) Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] ae3b3c36fa6840e6de1d4bd815e6e3cfd23aa413 1576 1575 2023-11-22T14:11:52Z Arno11 61 /* Running Xorg at 16bpp */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: emmc swap is faster than sd card swap) Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 497dad7b0f1ff773d59f8c3671086cf09e3871d3 1577 1576 2023-11-22T14:17:40Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: emmc swap is faster than sd card swap) Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 07d0499eaa937f8048610d664637220e539bd24d 1578 1577 2023-11-22T14:20:31Z Arno11 61 /* Web browsing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: emmc swap is faster than sd card swap) Other possibility: create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 15770c7b16b9e498dbbcaf25873da2d68fecc6c8 1579 1578 2023-11-23T16:28:55Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: eMMC swap is recommended and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Conversations UI |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] bbddca7665fc31a9d0d9d7a4b4d25632de7b2dc2 1580 1579 2023-11-23T16:40:30Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === More SWAP / SWAP activation === To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: eMMC swap is recommended and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] b67ff476239a564d8d45dd38523ec6e981534382 1581 1580 2023-11-23T16:44:35Z Arno11 61 /* More SWAP / SWAP activation */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (Note: eMMC swap is recommended and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 30c7bd635853e73b87a2fdc64cedf8474789b0fa 1582 1581 2023-11-23T16:48:31Z Arno11 61 /* More SWAP / SWAP activation */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d77dc02fa5ac00bd442a6546cdcb8907042a7912 1583 1582 2023-11-23T16:59:06Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 29d756391cf8d77f8f13b26ea4d4758d984d7ae8 1584 1583 2023-11-23T17:04:59Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Retroarch === '''First things to do:''' Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre> menu_driver = "glui" menu_show_core_updater = "true" video_driver = "gl" video_vsync = "true" menu_unified_control = "true" menu_core_enable = "true" quick_menu_show_options = "true" '''Some emulators are working well: ''' - QuickNES (NES/Famicom) - Snes9x 2005 (SNES/Super Famicom) Others at 70-80% speed: - Genesis Plus GX (SEGA MS/GG/MD/CD) Go to Online Updater / Core Updater to download emulators '''Retroarch recommended settings:''' To avoid crashes, use only "glui" Menu Driver '''Driver''' Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null" '''Video''' Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no", '''Audio''' Audio Enable "no" '''Input''' (very important) Unified Menu Controls "yes" Input User 1 Binds (keyboard settings) '''Directory''' (very important) Core "/home/user" '''Default keyboard keys''' '''X''' validate/ok '''C''' cancel/back '''F''' fullscreen (never close Retroarch in fullscreen mode) === Social messaging === Conversations app is compatible with libpurple and irc/bitlbee server. Twitter, Signal, Telegram, FB Messenger and others are working. (most audio and video links are playable) === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 7cb88b28839fd7d458477f80a77d84ddeaf471c8 1585 1584 2023-11-23T17:10:06Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. Warning: qml is not working at the moment at 16bpp. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 651c6de2696f95b17aea6ab848b13614f53268ab 1586 1585 2023-11-23T18:45:49Z Arno11 61 /* Running Xorg at 16bpp */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 18fcf527b97fa6d890d3b1014eec93b5bd24f28d 1587 1586 2023-11-25T17:47:48Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Install cpufrequtils. Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. ('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) - Edit /etc/pulse/daemon.conf and add these 3 lines: <code>resample-method = speex-fixed-2</code> <code>default-sample-rate = 48000</code> <code>alternate-sample-rate = 44100</code> ('''Note:''' these 3 lines make SIP calls working through Twinkle app) Then reboot. -run: <code>DISPLAY=:0.0 sudo nice -n -20 /usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 5348b73ec418705dc90ec884586f8bfa5f0d549c 1588 1587 2023-11-25T17:57:22Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Install cpufrequtils. Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. ('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) - Edit /etc/pulse/daemon.conf and add these 3 lines: <code>resample-method = speex-fixed-2</code> <code>default-sample-rate = 48000</code> <code>alternate-sample-rate = 44100</code> ('''Note:''' these 3 lines make SIP calls working through Twinkle app) Then reboot. -run: <code>DISPLAY=:0.0 sudo nice -n -20 /usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 629eb946fbacfe2db7162a1cb282162bb4446cb5 1589 1588 2023-11-25T17:58:46Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Install cpufrequtils. Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. ('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) - Edit /etc/pulse/daemon.conf and add these 3 lines: <code>resample-method = speex-fixed-2</code> <code>default-sample-rate = 48000</code> <code>alternate-sample-rate = 44100</code> ('''Note:''' these 3 lines make SIP calls working through Twinkle app) Then reboot. -run: <code>DISPLAY=:0.0 sudo nice -n -20 /usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 0399362357b2a95f6cfb5938e6577e2ace0b5acb 1590 1589 2023-12-02T18:42:12Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Install cpufrequtils. Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. ('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 6f00463c66a7dd69807e44c624d3e0dbc42c87aa 1591 1590 2023-12-03T11:30:18Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster: 250-500-600-720-850MHz To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> ('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Install cpufrequtils. Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. ('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] a14fc094840ed0e221308e73c157ed3ddbed0b23 1592 1591 2023-12-14T07:32:36Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Install cpufrequtils. Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. ('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d4af9e8a9362e64dbf03101201eea29e00864638 1593 1592 2023-12-14T07:36:09Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 125MHz CPU frequency (no overclock) === Install cpufrequtils. Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. ('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] ef5316c4c55b1a5be2e498344f282eb2bdb9a87b 1594 1593 2023-12-14T07:38:14Z Arno11 61 /* Removing 125MHz CPU frequency (no overclock) */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. ('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine) === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] bcc76627adaac50b462a77264f4b74ff6ff660be 1595 1594 2023-12-14T07:39:16Z Arno11 61 /* Running Xorg at 16bpp */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 32ff1e5eeb8898313e7ab6c5934f943c0e52182f Virtual Machine 0 60 1549 1418 2023-07-20T18:54:00Z Sicelo 5 /* VirtualBox */ wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} Generic virtual machine target. This is particularly useful when doing development and testing. == Installation == https://maedevu.maemo.org/images/virtual-machines/ There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration. Converting the qcow2 image to raw allows it to be used on real hardware. === VirtualBox === Download latest .vdi.xz image, unpack it with "xz -d" command. Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk. You are done! ==== Mouse ==== Since the UI is meant for touchscreens, it does not show the mouse by default. If it does not appear in the VM, you can change the Pointing Device to "USB Tablet" under "System > Motherboard" settings. Additionally, you may have to disable Virtualbox mouse integration === QEMU === In general something like: qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198]. To set up a port forward for SSH, add: -nic user,hostfwd=tcp:127.0.0.1:7722-:22 And then log in like this (password: <code>toor</code>): ssh root@localhost -p 7722 If the mouse pointer is grabbed and no cursor shows, you can add: -usb -device usb-tablet to the command line. Alternatively if that dose not work you can instead add: -usb -device usb-mouse -machine vmport=off If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it: sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \ -nic user,hostfwd=tcp:127.0.0.1:7722-:22 \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it: # Lenovo Ericsson N5321 gw simple udev rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \ MODE:="0666" And then activate it by running these two commands as root: # udevadm control --reload-rules # udevadm trigger Now you can run QEMU without the need for sudo! === virt-manager === Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image. The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly. * Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted. * In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue. * Make sure you have a USB (not ps/2) mouse configured When the screensaver kicks in, press the virt-manager power button to unlock. == Initial configuration == On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run: sudo -i dpkg-reconfigure openssh-server dpkg-reconfigure tzdata Make the system up-to-date: apt update apt upgrade apt install linux-image-amd64 reboot To get networking to work (at least in virtualbox), launch a shell and do sudo ifconfig eth0 up sudo dhclient eth0 A fresh Maemo VM image will also lock the device screen by default. In Qemu this means the only way to gain access to the VM again is either via SSH or by sending the power button command. This happens after 30 seconds of no activity on the device. We recommend disabling this behaviour by going to the settings and then open the "display" applet - uncheck "Lock screen automatically". == Connectivity == If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity. First off you need to add the development APT repository to your APT sources: # echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list Now update and upgrade: # apt update && apt upgrade Then you can install these things: # apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular We need mdbus2 to manipulate oFono: # wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb # dpkg -i mdbus2_2.3.3-2_amd64.deb Then we can check if oFono finds our modem: # mdbus2 -s org.ofono / /bluetooth /bluetooth/profile /bluetooth/profile/dun_gw /bluetooth/profile/hfp_ag /bluetooth/profile/hfp_hf /mbm_0 Then can check our mbm_0 modem: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},) Power on the modem: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true () # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties ({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},) Check if we need to enter a pin: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties ({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},) If PinRequired is 'pin' we need to enter a pin to unlock the sim: # mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234 () Then we can bring the modem online: # mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true () If we now redo the first mdbus2 command on /mbm_0: # mdbus2 -s org.ofono /mbm_0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml) [METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> () [METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> () [METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> () [METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon) [SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value) [METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist) [METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications) [METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> () [METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> () [METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> () [SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value) [METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value) [METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path) [METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages) [SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info) [SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path) [METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> () [METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> () [METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path) [METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path) [METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.LocationReporting.Request() -> (h:fd) [METHOD] org.ofono.LocationReporting.Release() -> () [SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value) [METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value) [METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result) [METHOD] org.ofono.SupplementaryServices.Cancel() -> () [METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties) [SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message) [SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value) [METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> () [SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value) [SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel) [SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict) [METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> () [METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path) [METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> () [METHOD] org.ofono.ConnectionManager.DeactivateAll() -> () [METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties) [METHOD] org.ofono.ConnectionManager.ResetContexts() -> () [SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value) [SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties) [SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path) [METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties) [METHOD] org.ofono.NetworkRegistration.Register() -> () [METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties) [METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties) [SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value) [[Category:Device]] 86492143f7c26df2908bf69cee282c619ada4f50 Tweaking 0 104 1550 986 2023-07-20T18:55:19Z Sicelo 5 /* Switch clock display to 24h - no longer needed. UI supports */ wikitext text/x-wiki Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner. ==== Prevent autoremoval of downloaded .deb files ==== The tool 'apt' as an alternative to apt-get uses different configuration. To prevent apt from auto-deleting downloaded .deb packages do this: <pre>echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \ > /etc/apt/apt.conf.d/01keep-debs</pre> ===== GConf Settings ===== ==== Show current gconf settings ==== <pre>gconftool-2 -R / |less</pre> <pre>gconftool -S \* |less</pre> ==== Battery icon ==== You can change the animation of the charging icon to show the current charge capacity: <pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort'' ==== Disable screen rotate ==== You can lock screen orientation to the current (disabling screen rotation) with <pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre> ==== Prevent user rearranging of app menu ==== <pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre> ==== Hide toolbar at bottom of osso-xterm (to get more lines) ==== <pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre> 4459fcfd141642f484c1ef8dda32bb3fee29a2da Main Page 0 1 1559 1353 2023-09-02T12:23:10Z Wizzup 4 Beowulf->Chimaera wikitext text/x-wiki == Description == Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more. You can find us on '''irc.libera.chat''', channel '''#maemo-leste''', you can [[IRC_channel|use Matrix]] to connect if you wish. For an overview of the current status, you might want to check out: [[Status]] Maemo Leste is based on Devuan Chimaera (Debian Chimaera) and all the "supported" devices ship with recent Linux (mainline-based) kernels. The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software. If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page. == Useful resources, lists and pages == * To get started with a new install, see [[Getting_Started|Getting Started]]. * Read our [[Leste_FAQ|Frequently Asked Questions]] * List of [[:Category:Device]] with support to varying degrees * Latest downloadable images: https://phoenix.maemo.org/view/Images/ * List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras * Read how to get started with [[Development]] * You have an application you want to see in Leste? Please let us know [[Wishlist|here]]. * For a list of presentations/talks featuring Maemo Leste, see [[Talks]] == Links == <div> The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192. * Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io] * Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues] * Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/] * Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/] * Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/] * Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/ * Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/] * Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/) * Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] ) * Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi] * Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66] * RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml] * Our Twitter: [https://twitter.com/maemoleste @maemoleste] * Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote) </div> 3cf0a0b6c8d8c33f156eafecef24eb831a3bcbee Category:Extras 14 138 1561 1021 2023-09-04T21:00:15Z Halftux 7 Added extras repository link wikitext text/x-wiki This page contains a list of packages in Maemo Leste Extras with wiki pages To install packages from extras you need to add one of the following repositories according to the used release. <code> deb https://maedevu.maemo.org/extras beowulf main contrib non-free deb https://maedevu.maemo.org/extras chimaera main contrib non-free </code> 88243738e0c8075ceea6b11d1bc2061d470596a6 Motorola Droid 4 0 50 1566 1508 2023-10-20T11:04:00Z Halftux 7 infobox device changes wikitext text/x-wiki {{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Maserati XT894 |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 <br>Cortex-A9 <br>Armv7‑A |dram=1024MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=AK8975 compass, <br>LIS3DH accelerometer, <br>TMP105 temperature, <br>ISL29030 proximity and illuminance |other= |category=Supported |sw_kernel=5.18.x |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Yes |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=120mW |sw_standbytime= }} == Installation == Hardware requirements: * Droid4 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://maedevu.maemo.org/images/droid4/ # VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # flash-droid-4-fw.sh # Latest maemo-leste-1.0-armhf-droid4-*.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # utags-mmcblk1p13.bin # droid4-kexecboot.img Check what kernel version your Android OS runs. For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version". If you have at least 3.0.8, you may skip "Updating Android" step below. Installation: # Create a working directory with above mentioned files in it # unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip # Power off Droid4 and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Updating Android === This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run: <pre> pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml sudo bash ../flash-droid-4-fw.sh popd </pre> === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-mmcblk1p13.bin sudo fastboot reboot </pre> If you did "Updating Android" the device should run the firstboot steps. If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot. If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff. Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems: echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]] Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/ The keyboard layout is extended to provide more standard keys. [[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]] Key mapping can be tested with the 'xev' program. It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]): udevadm hwdb --update udevadm trigger == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ While using the serial cable, if you lose the connection, the following may help: <pre> 18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with the console login propt later 18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help </pre> == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded. So you should do: <pre> sudo apt install firmware-ti-connectivity sudo modprobe hci_uart sudo hciconfig hci0 up sudo hcitool lescan </pre> == Stuff to try == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO <pre> 15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l [snip] 09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin 09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition 09:26 < xsetiadi> like i do last year 09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin </pre> ==== Blinkenlights ==== Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen. echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light ==== USSD ==== <pre> 22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output </pre> ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> If one wants to mirror the screen on HDMI, this can be done like so, for landscape: <pre> xrandr --newmode "960x540_60.00" 40.75 960 992 1088 1216 540 543 548 562 -hsync +vsync xrandr --addmode HDMI-1 "960x540_60.00" xrandr --output HDMI-1 --mode "960x540_60.00" --same-as DSI-1 </pre> For rotation, something like this might or might not work: <pre> xrandr --newmode "960x540_60.00ROT" 43.00 544 576 632 720 960 963 973 996 -hsync +vsync xrandr --addmode HDMI-1 "960x540_60.00ROT" xrandr --output HDMI-1 --mode "960x540_60.00" --same-as DSI-1 --rotate right </pre> ==== Keyboard / Mouse sharing with PC ==== To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4. <pre> [https://github.com/debauchee/barrier Barrier software-KVM switch] </pre> Developers and testers may wish to disable the googley bits before compiling. ==== BT Audio headset ==== sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'. ==== Torch ==== The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below): <source> ##Install the prerequisites $ sudo apt install i2c-tools ## Turn LED on in torch mode $ sudo i2cset -y 2 0x53 0x10 0x1a ## Turn LED on in privacy indication mode $ sudo i2cset -y 2 0x53 0x10 0x19 ## Turn LED off (in any mode) $ sudo i2cset -y 2 0x53 0x10 0x18 ## Use LED for doing a hella bright flash for some time once and then turn off $ sudo i2cset -y 2 0x53 0x10 0x1b </source> == Using a configured Leste sdcard in a different Droid4 == A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. == Gallery == <gallery> Motorola-Droid4-20200125.jpeg Droid4-neofetch.JPG Droid4_htop.jpg Droid4_leste_logo.jpg Cant_have_2_much_leste.jpg Leste-neverball.jpg Statsfun.jpg Leste-glmatrix.png Droid4-leste-utox2.jpg Droid4-leste-pcsx.jpg Droid4-leste-surf_master.jpg Droid4_Daimonin_Hdmi.jpg </gallery> == Old status overview == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]] |- | Charging || Yes || |- | Wireless || Yes || |- | Ethernet || N/A || |- | Micro USB || Yes || OTG and USB network |- | Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT) |- | Screen || Yes || |- | 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Implemented with Pulseaudio and UCM files |- | 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || No || Needs kernel work |- | SMS || Yes || Works with ofono. Needs Leste UI |- | Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI |- | Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |- | FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers |- | FM Receiver || Not yet || |- | Accelerometer || Yes || Available in /sys, and as input device via iio-uinput |- | Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet) |- | Gyro || N/A || |- | Proximity sensor || Yes || |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || Yes || No UI integration |- | TV-out || N/A || |- | GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]] |- | Infrared || N/A || Missing in hardware |- | Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/ |- | Idle power consumption || ~120mW || Needs sim inserted |} [[Category:Device]] 22eac0265be749283707a68a237a9a20b66c3370 Motorola Razr (2011) 0 209 1567 1435 2023-10-20T11:09:06Z Halftux 7 wikitext text/x-wiki {{Infobox Device |image=[[File:XT910Lockscreen.jpg|250px]] |manufacturer=Motorola |codename=Spyder XT910, XT912 |dimensions=130x68.9x7.1mm |release_date=11-11-11 |soc=TI OMAP4430 <br>Cortex-A9 <br>Armv7‑A |dram=1024MB DDR2 |power= |lcd=960x540 4.3" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors= |other= |category=unsupported |sw_kernel=6.1 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=Yes |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Unkown |sw_audio=Unkown |sw_calls=Unkown |sw_sms=Unkown |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata=Unkown |sw_4g=No |sw_bluetooth=Yes, [[#Bluetooth|see notes]] |sw_fmtx=No |sw_fmrx= |sw_nfc= |sw_accelerometer=No |sw_compass=No |sw_gyro= No |sw_proximity=Yes |sw_als=No |sw_gps=Unkown |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower=Unkown |sw_standbytime= }} == Installation == Hardware requirements: * A Razr or Droid Razr or Droid Razr MAXX with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux or Windows system * Android Tools: fastboot * get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip * Flashing tools: ** XZ Utils and coreutils for Linux ** Etcher[https://github.com/balena-io/etcher] for Windows Download from https://github.com/tmlind/droid4-kexecboot.git # utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin # droid4-kexecboot.img Installation: # Create a working directory with above mentioned files in it # Power off the Razr and connect it to the host machine with MicroUSB cable # Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second. === Setting up kexecboot === Now, assuming you are in the working directory, install kexecboot: <pre> sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin sudo fastboot reboot-bootloader sudo fastboot flash bpsw droid4-kexecboot.img sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin sudo fastboot reboot </pre> The device should reboot and show kexecboot menu for a few seconds before it boots to Android. === Install Maemo Leste to the sdcard === Now, flash the Maemo Leste image to your sdcard: On Linux: <pre> xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync </pre> On Windows: Use Etcher Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu. You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute. == Updating == Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails: * Poweroff device, grab the SD card * Backup any important files * Grab the latest image from https://phoenix.maemo.org/view/Images/ * Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE == Notes == The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot. == Serial Cable == As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/ == Bluetooth == Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded Using a bluetooth headset: sudo apt install pulseaudio-module-bluetooth blueman bluez sudo modprobe hci_uart pactl load-module module-bluetooth-discover blueman-manager Pair & trust your device in blueman, connect audiosink. You can close blueman now. == Additional Tips == ==== Using a battery without temperature sensor ==== Modprobe the pmic driver as follows: <pre> cpcap-battery ignore_temperature_probe=1 </pre> ==== Flashing the boot logo ==== More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO logos can be flashed via fastboot flash logo.bin logo.bin ==== HDMI ==== Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier. <pre> xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off </pre> Return to internal touchscreen display. <pre> xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off </pre> == Using a configured Leste sdcard in a different Razr == A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system. To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate. If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with. apt reinstall firmware-ti-connectivity If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device apt download firmware-ti-connectivity Then copy the .deb to your new device and install that (as root) with dpkg -i firmware-ti-connectivity_[version]_all.deb Then (as root) re-calibrate the wifi chip by running /usr/bin/maserati-calibrate Then reboot. [[Category:Device]] 9867c6b2f9c87829bd644fad33388ac4b41bad1d Nokia N900 0 48 1596 1595 2023-12-14T07:42:27Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] ff620fa2d74cde385aaaa3bb9bc90a610a0595f3 1597 1596 2023-12-14T07:43:13Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] b16256d799ed528a032cb47278d4dfb42cc0f005 1598 1597 2023-12-14T07:43:47Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> ('''Note:''' Swap activation and transitions tweaks are recommended) This is a temporary process for testers. == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 5a9c3d47a4fbd77204b71f3030b0edf9f0360d9d 1599 1598 2023-12-16T11:42:15Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Running Xorg at 16bpp === It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. As root: <code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code> Add this line in Section "Screen": <code>DefaultDepth 16</code> Then reboot. === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] beb2f26971cb5396c0d767dc0bcc1896b10131d2 1600 1599 2023-12-16T11:43:33Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) To make voice calls work: -run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] f3c74f91f786877eb1b5bbe0f05e92bb787618bc 1601 1600 2023-12-16T11:45:20Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) - To make voice calls work: run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 579f7581467964abf1e68ec3993485cb78f8a46e 1602 1601 2023-12-16T11:48:22Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) - To make voice calls work: run: <code>/usr/bin/cmt_pulse</code> This command starts cmtspeech and voice calls are ready to use. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 897af0ddcb7e71e8ca5a4e490351791e83dd73e2 1604 1602 2024-02-01T20:30:55Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes/WIP |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] a78982cefcef8e80c3c4ac970d8c21d0acb640d8 1605 1604 2024-02-01T20:32:25Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 850MHz (stable), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with ofono scripts and Sphone |- | Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 495ed0c731998b729ef8fc67e18cf231a7c43436 1606 1605 2024-02-01T21:15:15Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. Works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] a9e92d81314f1b3f2033a5a1ded23938e36f96cc 1607 1606 2024-02-02T18:55:46Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.67 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. Works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] af17de4d939dacbe7fa4afdc22218b22f237bf3c 1608 1607 2024-02-03T19:17:29Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 8945212c85a44887b576a949dd27f4e264785f26 1610 1608 2024-02-15T02:29:49Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. WARNING: Once hildon-desktop is (entirely) visible, please wait 1-2 minutes before using the device (and avoid slowness). ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 414d9e20d4a5ef72eb05a94cc6afd4e0397f7e2f 1611 1610 2024-02-16T08:17:11Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 1df0ab68131b2adc20e7c0586d00e50598b9b63d 1612 1611 2024-02-19T18:42:45Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 87fb0cdbeb86ba3485a78e587b8254257fe854f8 1613 1612 2024-02-25T09:22:00Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 21b83deaa7f955410a996629c7e5e6eb2662adc7 1614 1613 2024-02-25T09:23:56Z Arno11 61 /* Removing 250MHz CPU frequency */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse Disable everything else Channel by default: 2 (Stereo) High speed playback: No - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 01cb98290796118c091d4acc024448dc22a5041f 1615 1614 2024-02-25T09:30:10Z Arno11 61 /* Video playing */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 4e5f7b4416adab104323a21a7c7519752239faea 1623 1615 2024-05-31T12:46:31Z Amunizp 69 /* Quick */ reminder of chmod wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 21bb4d30fe46c95b3656caa3ff8e81f09c0af5fd 1624 1623 2024-05-31T12:48:27Z Amunizp 69 /* Quick */ changed order step 3 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> and the connect Nokia N900 to the PC. 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 3c66c69dd81d1b818b57db4d332b575dd028d8be 1625 1624 2024-05-31T13:10:05Z Amunizp 69 /* Quick */ added output from terminal as a reference. wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 4def301ec8e508cbdbd9b0613cffda8992818f37 1626 1625 2024-05-31T13:25:32Z Amunizp 69 /* Quick */ add more terminal output. wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] c3dcd76877a89b0359784a83b3e39ffbd2f88acb 1627 1626 2024-05-31T13:26:16Z Amunizp 69 /* Quick */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] e929e86d3439b184208f9dfb72944264d82a699f 1628 1627 2024-05-31T13:27:08Z Amunizp 69 /* Bootloader (U-Boot) setup */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 79e8680cb831b6950630683aa2537918cb8bbf8b 1629 1628 2024-05-31T16:40:41Z Arno11 61 /* Tips / Tweaks */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 84f4dfc085ffdfab7988453fa653f6a5baa682e9 1630 1629 2024-05-31T16:46:39Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 94c1b21fdd6018ac9ea33b9981beac5edaebf424 1631 1630 2024-05-31T16:50:19Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 51384707a203a457f7b9c426f3d569e6d644ccae 1632 1631 2024-05-31T16:54:36Z Arno11 61 /* Tweaking Transitions */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. Note: like Fremantle, blur effect can cause lags and slowness. It is possible to deactivate it through the transitions.ini file: [HOME] radius = 0 radius_more = 0 === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] a30ce7b83cfb96879157c914f7815045e871489c 1633 1632 2024-05-31T16:55:57Z Arno11 61 /* Tweaking Transitions */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. Note: like Fremantle, blur effect can cause lags and slowness. It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 6e212552ac838001a7a2db8bd52764dbd67ae64d 1634 1633 2024-05-31T16:57:34Z Arno11 61 /* Tweaking Transitions */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] b6c0e8696b54107f500196e4570632793d7dc6ce 1635 1634 2024-06-02T09:40:02Z Amunizp 69 /* Quick */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 06d03457bc955beb4274996d19bfa91af6b1b162 1636 1635 2024-06-02T09:40:41Z Amunizp 69 /* Bootloader (U-Boot) setup */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] e27ec88c71e76ddb316d4c4e575c2ef6bfd2b85a 1637 1636 2024-06-02T18:17:24Z Amunizp 69 /* Bootloader (U-Boot) setup */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 9bc935ec504e94dab3548bfb94dbf9612e288d60 1639 1637 2024-06-03T09:51:57Z Amunizp 69 /* Quick */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 8b0d76f766ff1cb4e0d5d2f6bce95afaad35a1ac PinePhone 0 93 1603 1526 2024-01-27T19:53:36Z GaryM0101 68 Added steps to enable outgoing calls over VoLTE wikitext text/x-wiki {{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |sensors= |other= }} This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro. == Notes == Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project. == Status == Currently, most things work, for example you can: * Run any applications in Debian and Devuan on your phone * Connect to wifi * Use the terminal * Connect to 2G/3G/4G data connections * Make and receive phone calls and SMS * PinePhone keyboard is supported {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel |- | Serial || Yes || Via headphone jack (disable headphone switch) |- | Charging || Yes || |- | Wireless || Yes || Involves installing out of tree driver |- | Ethernet || N/A || ps: USB Ethernet adapter tested and works |- | Bluetooth || YES || No UI integration yet |- | Infrared || N/A || TX only (hardware limitation). |- | USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested |- | Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box |- | Screen || Yes || Modesetting driver |- | 3D Acceleration || Yes || mesa-lima |- | Touchscreen || Yes || Capacitive |- | Audio || Yes || Pulseaudio and UCM units |- | 2G/3G/4G data || YES || Works with ofono; |- | SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available |- | Phone calls || YES || Works with ofono; Calls work with sphone as UI |- | VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed |- | Accelerometer || Yes || |- | Proximity sensor || Yes || |- | RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet. |- | Vibration Motor || ? || |- | GPS || WIP || Works with WIP Leste GPS stack |- | Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera. |} === More Information === * Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming). * Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings. * WiFi and terminal work. * Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions. * Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code> * Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves. * Many "games" packages in the Application Manager don't work well yet. * '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do: $ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT - In order to list all specific VoLTE profiles, use: $ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT - To enable calling out over VoLTE, use: $ echo 'AT+QCFG="ims",1' | atinout - /dev/EG25.AT - Reboot the modem by rebooting the phone. == Installation == Unlike most phones, it's pretty simple. === SD Card Installation === ==== Prepare the SD card ==== Create a new msdos partition table using fdisk $ sudo fdisk /dev/''SDCARD'' # press 'p' to view current table # press 'o' to erase and make a new table # press 'w' to write changes and quit ==== Write the image to an SD-Card. ==== Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here]. $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE'' $ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE'' $ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz $ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56 Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image: $ unxz maemo-leste-*-arm64-pinephone-*.img.xz Write the image to microSD. '''''Be very careful with this step''''' to select the correct device. $ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. <small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small> === eMMC Installation === '''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''. ==== Preparing the .img file for eMMC boot ==== Download the .img.xz version of the image and extract it: $ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, mount the image to a loop device. $ sudo losetup -P /dev/loop0 maemo-leste-*-arm64-pinephone-*.img Mount the second partition to /mnt and the first partition to /mnt/boot and enter /mnt: $ sudo mount /dev/loop0p2 /mnt $ sudo mount /dev/loop0p1 /mnt/boot $ cd /mnt Use the editor of your choice to edit <code>/mnt/etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>. Now we need to edit <code>boot.scr</code>. For that you will need to download <code>boot.txt</code> from Maemo Leste github: $ cd /mnt/boot $ sudo wget https://raw.githubusercontent.com/maemo-leste/pine64-uboot/master/boot.txt Now we do the same step as we did for the fstab, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code> in <code>boot.txt</code>. To regenerate <code>boot.scr</code> you need to install <code>u-boot-tools</code> first to be able to use mkimage. Regenerate <code>boot.scr</code>: $ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Leave /mnt and unmount the partitions: $ cd ~ $ sudo umount -R /mnt We can now save the image we just modified using dd: $ sudo dd if=/dev/loop0 of=maemo-leste-1.0-arm64-pinephone-EMMC.img The image is now ready to be installed to the eMMC. We can now remove the loop device we created earlier: $ sudo losetup -d /dev/loop0 ==== Install Using Tow-Boot ==== If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode. The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc. ==== Install Using JumpDrive ==== You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer. The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card. [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.] ==== Install from the booted microSD ==== # Flash Maemo Leste to the microSD card # Insert microSD card and boot the phone # Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download. # Extract the image file so that it only ends in ".img" # Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct. # Turn off phone, remove microSD card and then turn on the phone. == Post-Installation == === How to take a picture === Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/ Both cameras (rear and front) are supported. Work in ongoing to improve the camera app. To open the (pinhole) camera from the terminal: $ harbour-pinhole Or open it from Maemo desktop "Camera" icon. In order to trigger auto-focus: $ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1 Or trigger autofocus using the commands to start and stop manually: $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1 then wait till it gets the focus where you want, then $ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1 You can use this script as reference to take a picture: https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup Or use libcamera tools (libcamera-tools package). To list the cameras: $ cam -l Example to capture 10 pictures with the rear camera: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10 Example to capture 10 pictures with the front camera: $ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10 And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example: $ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg Other option is to use "cam" to capture to DNG. Example: $ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10 And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg: $ dcraw frame-cam0-stream0-000001.dng Also the graphical tool "qcam" is working! Run it with: $ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion === Enabling Flash Light / Torch === Enable: $ echo 1 > /sys/class/leds/white:flash/brightness Disable: $ echo 0 > /sys/class/leds/white:flash/brightness Trigger flash strobe: $ echo 1 > /sys/class/leds/white:flash/flash_strobe === PinePhone Keyboard === First of all, make sure you have the latest firmware loaded in the keyboard (firmware is here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard/tree/master/firmware/build and userland here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard ): $ ppkb-i2c-flasher -e i2c -i fw-user.bin write reset Load the xkb layout ( available here: https://codeberg.org/phalio/ppkb-layouts/src/branch/main/xkb ) $ setxkbmap pp altgr === Suspend === Suspend can be triggered with: $ echo mem > /sys/power/state A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/ === Volume Applet === Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is: sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink === Installing apps === * Apps can be installed just as on any Devuan system with: $ sudo apt install ''package-name'' * There is also the app store. === Launching apps === This works for any app. Say for instance, you want to run Iceweasel/Firefox: * Launch apps from the desktop * Launch apps from your console: $ iceweasel & * Install a universal app launcher that you can run from desktop: $ sudo apt install desktop-cmd-exec === Make apps show up on desktop === Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples]) To view a list of currently installed apps, do: $ sudo apt list --installed | less This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide. === Unhide the keyboard === The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731). === Note about Calculator === The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode. === Time zone / World Clock === Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to: * Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode. * Or just use the console: $ sudo date -s HH:MM $ sudo date -s YYYYMMDD $ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime === More Tips & Tricks === Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone. [[Category:Device]] 620d45e3fc11866f9e28aebcc9cd0ab7c69fd4c1 Image Builder 0 100 1609 965 2024-02-12T19:40:29Z Sicelo 5 /* Maemo 7 Leste */ wikitext text/x-wiki = How to build your own images = == Maemo 7 Leste == '''[https://github.com/maemo-leste/image-builder Github]''' 1.) Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev zsh git</pre> 1.1) If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream <pre> # wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres # ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/chimaera </pre> 2.) In your terminal, run the following commands: $ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git $ cd image-builder/arm-sdk $ zsh -f $ source sdk $ load devuan DEVICE_NAME maemo $ build_arm_dist Note: replace <code>DEVICE_NAME</code> with your board name: * n900 * n950 * n9 * droid4 * odroidxu * odroidxu4 * ouya * raspi1 * raspi2 * raspi3 * raspi4 * rock64 * pinephone-dontbeevil * pinephone * pinetab * sunxi * turbox-twister 46c594f7f3b775d7651f623a2ae3a8913285c574 Purism Librem5 0 225 1616 2024-03-15T22:02:32Z Sicelo 5 New device - Librem5 wikitext text/x-wiki {{Infobox Device |manufacturer=Purism |codename=Librem5 |dimensions=74×152×15 mm |release_date= |soc=NXP i.MX 8M Quad core Cortex-A53, 64bit ARM (auxiliary 266MHz Cortex-M4F) |dram=3GB LPDDR4-3200 |power= |lcd=1440x720 IPS TFT 5.7″ |video=Vivante GC7000Lite |audio= |network= |storage=32GB |usb= |camera= |sensors= |other= |category=Supported }} == Installation == [[Category:Device]] 0b1a02e163c90f1345b2c183eeb712d20f7c1630 Sync 0 201 1617 1411 2024-04-22T22:57:11Z Wizzup 4 Update tls chain validation issues to mention it's ok now on chimaera wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently. (Contributions welcome) <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == First, install syncevolution using '''sudo apt-get install syncevolution'''. If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> ==== Warning: TLS Chain validation issues ==== If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' On Chimaera this problem should no longer exist - it was only a problem for Beowulf. == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ... Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. = Further reading = The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync c01048a80c2c10842234097e6a4a83975898b21a 1618 1617 2024-04-27T09:06:22Z Wizzup 4 Add instructions on how to sync to additional calendars wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently. (Contributions welcome) <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == First, install syncevolution using '''sudo apt-get install syncevolution'''. If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> === Managing and synchronising additional calendars === The default maemo-events / maemo-tasks / maemo-notes database is called "N900" (in the Calendar application, go to Settings, and then click on "Edit claendars") - marked as "DEFAULT_SYNC". This means that is no specific database is provided above, the synchronisation will be done against this calendar. If you have a need to have multiple remote calendars and sync them against other Maemo calendars, create a new calendar using the Calendar application (Settings -> Edit calendars -> New). For the sake of the example, call it MoreTasks. Then, assuming you used the above nextcloud synchronisation example, run something like this (this example only syncs tasks/todo): <pre> syncevolution --configure \ --template webdav \ database=TASKS_URL \ backend=caldavtodo \ target-config@nextcloud moretaskstodo syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database=MoreTasks \ nextcloud moretaskstodo syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync two-way nextcloud moretaskstodo </pre> The trick being that you specify the database name for the "database=" argument to the second syncevolution call. === Warning: TLS Chain validation issues === If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' On Chimaera this problem should no longer exist - it was only a problem for Beowulf. == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumed it's installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ... Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. = Further reading = The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync dc6265628c57ec56ba21c2847833690008f1a48c 1619 1618 2024-04-27T10:09:25Z Wizzup 4 /* Radicale Testing Server */ wikitext text/x-wiki This page explains and suggests various ways of synchronizing contacts, calendars and files. = Calendar, Notes, Tasks and Contacts = Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend). == GUI == The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently. (Contributions welcome) <gallery widths=320px heights=173px> File:syncevolution.png|main syncevolution screen File:syncevolution-2.png|syncevolution for a specific sync target </gallery> == Synchronizing with syncevolution CalDav + CardDav == First, install syncevolution using '''sudo apt-get install syncevolution'''. If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration: <pre> rm -rf /home/user/.config/syncevolution </pre> === NextCloud synchronizing === We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''. A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like: <pre>https://my.nextcloud.org/remote.php/dav</pre> then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so: <pre> https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/ </pre> Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts): <pre> https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/ </pre> Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this: <pre> syncevolution --configure \ --template webdav \ username=NEXTCLOUD-USER-HERE \ password=NEXTCLOUD-PASS-HERE \ syncURL=MAIN-DAV-URL-HERE \ target-config@nextcloud syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavtodo \ target-config@nextcloud nextcloudtodo syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldavjournal \ target-config@nextcloud nextcloudjournal syncevolution --configure \ --template webdav \ database=CALENDAR-URL-HERE \ backend=caldav \ target-config@nextcloud nextcloudcal syncevolution --configure \ --template webdav \ database=CONTACTS-URL-HERE \ backend=carddav \ target-config@nextcloud contacts syncevolution --configure \ --template SyncEvolution_Client \ sync=none \ syncURL=local://@nextcloud \ username= \ password= \ nextcloud syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database= \ nextcloud nextcloudtodo syncevolution --configure \ sync=two-way \ backend=maemo-notes\ database= \ nextcloud nextcloudjournal syncevolution --configure \ sync=two-way \ backend=maemo-events \ database= \ nextcloud nextcloudcal syncevolution --configure \ sync=two-way \ backend=evolution-contacts \ nextcloud contacts </pre> All of the above is configuration that only needs to be done once. Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this: <pre> syncevolution --sync slow nextcloud nextcloudjournal syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync slow nextcloud nextcloudcal syncevolution --sync slow nextcloud contacts </pre> Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: <pre> syncevolution --sync two-way nextcloud nextcloudjournal syncevolution --sync two-way nextcloud nextcloudtodo syncevolution --sync two-way nextcloud nextcloudcal syncevolution --sync two-way nextcloud contacts </pre> === Managing and synchronising additional calendars === The default maemo-events / maemo-tasks / maemo-notes database is called "N900" (in the Calendar application, go to Settings, and then click on "Edit claendars") - marked as "DEFAULT_SYNC". This means that is no specific database is provided above, the synchronisation will be done against this calendar. If you have a need to have multiple remote calendars and sync them against other Maemo calendars, create a new calendar using the Calendar application (Settings -> Edit calendars -> New). For the sake of the example, call it MoreTasks. Then, assuming you used the above nextcloud synchronisation example, run something like this (this example only syncs tasks/todo): <pre> syncevolution --configure \ --template webdav \ database=TASKS_URL \ backend=caldavtodo \ target-config@nextcloud moretaskstodo syncevolution --configure \ sync=two-way \ backend=maemo-tasks \ database=MoreTasks \ nextcloud moretaskstodo syncevolution --sync slow nextcloud nextcloudtodo syncevolution --sync two-way nextcloud moretaskstodo </pre> The trick being that you specify the database name for the "database=" argument to the second syncevolution call. === Warning: TLS Chain validation issues === If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini''' On Chimaera this problem should no longer exist - it was only a problem for Beowulf. == Radicale synchronising == Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs: # The main DAV url is simple the URL to your radicale server (without the .web part) # The calendar URL is simply the http(s) URL to the calendar that you want to synchronize # The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize The username (and optional password) are the radicale credentials. === Radicale Testing Server === For testing purposes, here is how to quickly run a radicale server, this assumes that radicale is installed. <pre> mkdir -p ~/radicale cd ~/radicale python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info </pre> Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing) = Files synchronization = This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ... Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync = Known Issues = * Synchronizing calendar to radicale gives errors if there are unnamed calendar events. * Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname. = Further reading = The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync 64edb5a9ef0c3cbb40a2c3e8bb448c09ea3347bd Development 0 61 1620 1285 2024-05-29T10:29:45Z Wizzup 4 wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Chimaera, which is based on Debian Bullseye. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === All development software and tests end up in 'chimaera-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line: deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free droid4 The exact line might depend on your device; just copy the maemo chimaera line and change chimaera to chimaera-devel - for example, if you're not on a mapphone (droid) device, you probably don't want the droid4 component in the line. Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap systemd-container && sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === Localization === See [[Localization]] === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 08d892b99e20f78a81477708a0245db48c7550ce Talk:Nokia N900 1 226 1621 2024-05-31T09:52:29Z Amunizp 69 Checking if I understood instructions correctly. wikitext text/x-wiki ##Checking that I Understood this correctly## Bootloader (U-Boot) setup Quick If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900,'''insert the SD Card with the image mentioned above,''' issue the following command on PC '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' and connect Nokia N900 to the PC 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: ./0xFFFF -b This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type run sdboot. To flash u-boot permanently, you can issue the following command (Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)) sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f Existing Fremantle If you have a functional Fremantle installation''', which means you can use your device normally and you can type the following commands on your n900 device,''' you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" '''[Where do I get this how to I install it?]''' 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. '''[Where do I get this how to I install it?]''' 3. Add Maemo Leste menu item (run as root): '''[Does this mean open the terminal and type the following with SUDO?]''' cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) bc07ac1fb36c5d880e0632ade4fb561334d0115b 1622 1621 2024-05-31T09:58:10Z Amunizp 69 title typesetting wikitext text/x-wiki == Checking that I Understood this correctly == Bootloader (U-Boot) setup Quick If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly: 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ 3. Turn off Nokia N900,'''insert the SD Card with the image mentioned above,''' issue the following command on PC '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' and connect Nokia N900 to the PC 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: ./0xFFFF -b This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type run sdboot. To flash u-boot permanently, you can issue the following command (Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)) sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f Existing Fremantle If you have a functional Fremantle installation''', which means you can use your device normally and you can type the following commands on your n900 device,''' you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" '''[Where do I get this how to I install it?]''' 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. '''[Where do I get this how to I install it?]''' 3. Add Maemo Leste menu item (run as root): '''[Does this mean open the terminal and type the following with SUDO?]''' cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) be30876fdcf7ba1308d6fef3ad48cef9a120a1f0 Getting Started 0 105 1638 1472 2024-06-02T21:54:06Z GaryM0101 68 Even though you are logged in as root, you may need to execute "sudo" when expanding the root partition wikitext text/x-wiki = Installation to SD Card = After updating device firmware with included script (eg. flash-droid-4-fw.sh): Download an image appropriate for your device from [http://maedevu.maemo.org/images/] Insert a microsd card into your computer and find the device with '''cat /proc/partitions''' Decompress and write the image to your microsd card device: xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE = Expand the root partition to fill SD card = A helpful script is included to expand the root partition to fill the microSD card. After booting and logging in to root, execute: sudo /etc/expandcard.sh This will expand the root partition to fill the microSD card using resize2fs. = (SSH) Login = User credentials are: '''user:user''' Root credentials are: '''root:toor''' You should prefer logging in as user and then escalating to root with sudo as necessary. In images newer than 17 January 2021, root SSH is disabled by default. = Useful Bits = == Lock Code (applies to N900 only) == * Default lockcode is "12345" * Lockcode can only be changed/used on [[Nokia_N900|N900]], since the current implementation depends on a special "cal" partition. QEMU and all other Leste supported devices do not have it. (TODO: Confirm if N9 and N950 have it too) = More RAM = You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024. hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram. If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality. Remove it with: rc-update del zram rm /etc/init.d/zram = Tweaking = See [[Tweaking]] a86c7062f0ed403790ceee4079225301806cf645 Extras/picodrive 0 227 1640 2024-06-05T21:29:01Z Arno11 61 Created page with "{{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |cate..." wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It is working only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping can be modified directly in the config file. WARNING: on N900 in the GUI, 'enter menu' key is associated to 'escape' key. 'back' is associated to 'e' (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] b465ac63e4050605f9e90c50677c3857b37cfa9c 1641 1640 2024-06-05T21:37:51Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It is working only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping can be modified directly in the config file. WARNING: on N900 in the GUI, 'enter menu' key is associated to 'escape' key. 'back' is associated to 'e' (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] fc44ba1f60647bd78c87f1c95cdff5d7701b53d9 1642 1641 2024-06-05T21:40:43Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping can be modified directly in the config file. WARNING: on N900 in the GUI, 'enter menu' key is associated to 'escape' key. 'back' is associated to 'e' (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 8717fc2b427aaf219544e33bc3986ebf8066b606 1643 1642 2024-06-05T21:48:25Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' key is associated to 'escape' key. 'back' is associated to 'e' (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 71f3a7717dc61f20d51ed5860691437aad2e6055 1644 1643 2024-06-05T21:49:46Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 85efa3b7c32a7ed084d7db67ca946648b3b0e655 File:2024-06-06-000341 800x480 scrot.png 6 228 1645 2024-06-05T22:28:27Z Arno11 61 wikitext text/x-wiki Picodrive GUI 1d534283a3b826e09e9ae95c8588dcfe27fccadc Extras/picodrive 0 227 1646 1644 2024-06-05T22:29:32Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 3273a2a691e64e34e30b90b336b6eae9488a9572 1647 1646 2024-06-05T22:32:03Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:Picodrive GUI]] * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] fcb64567e192261973d2d468f1610cff281e7a23 1649 1647 2024-06-05T22:42:35Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] ef50152002b90dd033504ac496f0041b7d6f33ce 1650 1649 2024-06-05T23:09:30Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] b69207e65a12c8f5a564e78486ec9d1d0b0d798e 1652 1650 2024-06-06T05:54:25Z Arno11 61 /* Tested Megadrive/Genesis games */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] c78a924174783a316a03e217ccc9a9109dd95ccb 1654 1652 2024-06-06T05:57:15Z Arno11 61 /* Tested 32X games */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 4b2033871023fe0c5bfd30260b5937debd78e2f4 1655 1654 2024-06-06T06:04:35Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] f5ede58d65f7ce6f24c57baf18a76f8a3afd557d 1656 1655 2024-06-06T06:21:07Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] ff40199c056769063f2b7326de06b9a53880fdb0 1657 1656 2024-06-06T06:23:11Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration works fine for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] eb991bc207be359689643b56b2073bcc5a3fe268 1658 1657 2024-06-06T06:30:46Z Arno11 61 /* Tips */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration works fine for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 3b7bb31d37f1dc783bf4b526b5d02f789b7a69d7 1659 1658 2024-06-06T06:34:37Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration works fine for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 8fdbc7c9dd00be4821eb2300a1e1cb5a2b693fc4 1660 1659 2024-06-06T06:47:00Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 390f2786fe08812c0bc8eaf32893282a72829ce4 1661 1660 2024-06-06T06:49:49Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). (Almost all configuration parameters are available from the GUI) === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 8ef9953a615f0e3d02b01f3263f1078468476197 1662 1661 2024-06-06T06:50:35Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). Almost all configuration parameters are available from the GUI. === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] a40a54cd363addd56c58453bc4debd599f12d079 1663 1662 2024-06-06T06:53:55Z Arno11 61 /* Tips */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). Almost all configuration parameters are available from the GUI. === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/your_game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 4dc6eced4c953a180016f5d8f50ba312b78846e3 1664 1663 2024-06-06T07:02:24Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. (Note: Maemo 5 Picodrive version didn't support 32X emulation) It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one) == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). Almost all configuration parameters are available from the GUI. === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/your_game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] dc2d4fff7a99b513dc62c9604f38a276675d3d00 1665 1664 2024-06-06T07:04:21Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. (Note: Maemo 5 Picodrive version didn't support 32X emulation) It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI: This version of Picodrive is based on a well working raspberry version and not the old maemo one. == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). Almost all configuration parameters are available from the GUI. === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/your_game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 59ebef1f3357d357bf352e257fabf1c453408a7b 1666 1665 2024-06-06T08:16:50Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. (Note: Maemo 5 Picodrive version didn't support 32X emulation) It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI: This version of Picodrive is based on a well working raspberry version and not the old maemo one. == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). Almost all configuration parameters are available from the GUI. === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/your_game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 056f5070ccffb049bb0efa82e6f5c3aea5942e65 1668 1666 2024-06-06T20:43:47Z Arno11 61 /* Tips */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |category=Games |packager=[[User:Arno11]] }} Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste. (Note: Maemo 5 Picodrive version didn't support 32X emulation) It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses the generic GTK UI: This version of Picodrive is based on a well working raspberry version and not the old maemo one. == Status == [[File:2024-06-06-000341_800x480_scrot.png|500px|center]] * Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1. Without frameskip and sound, games run at 60 fps with default CPU frequencies. * 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1. Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). Almost all configuration parameters are available from the GUI. === Tested Megadrive/Genesis games === Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2. [[File:2024-06-06-000430 800x480 scrot.png|500px|center]] === Tested 32X games === After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe. [[File:2024-06-06-001745 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/picodrive/picodrive /game_dir/your_game.zip Default keymap is visible in /home/user/.picodrive/config2.cfg On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games. As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI * Find a way to get a proper fullscreen mode [[Category:Extras]] 14c7fd7b3c8cad079b414b30fa0d0c33433e033f File:Picodrive2 GUI.png 6 229 1648 2024-06-05T22:33:31Z Arno11 61 Pico wikitext text/x-wiki == Summary == Pico 91d2c9749a180cde3b429aeb1da7f5a235b95877 File:2024-06-06-000430 800x480 scrot.png 6 230 1651 2024-06-06T05:53:15Z Arno11 61 wikitext text/x-wiki Sonic 2 aad1ecb63b2d8b37488d1aada8d26e860a3b447a File:2024-06-06-001745 800x480 scrot.png 6 231 1653 2024-06-06T05:56:08Z Arno11 61 wikitext text/x-wiki VRD a716a0c7b83eb569cd9e875c9829acdf7079000c Wishlist 0 89 1667 1295 2024-06-06T09:22:51Z Arno11 61 /* Applications */ wikitext text/x-wiki If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise that we can port it right away, but we will try, as far as our resources allow. To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. == Applications == {| class="wikitable"http://maemo.org/packages/view/orecchiette/ ! Package name ! Done ! Reason ! User ! URL ! Notes |- | osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote |- | pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation. |- | scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please |- | [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ || |- | Picodrive || Yes || Sega emulator, fun || [[User:Maemish]] [[User:Arno11]]|| http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ and https://github.com/maemo-leste-extras/picodrive || https://leste.maemo.org/Extras/picodrive |- | Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/ |- | Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend |- | PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed |- | Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port. |- | Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI |- | Word processor / Abiword || Yes || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ || in Devuan repos |- | Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel |- |Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0 |- | Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || |- | Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || |- | Mail with imap support || No || || [[User:Maemish]] || || |- | RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || || |- | Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || |- | OpenMediaPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || |- | SMPlayer || Yes || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || in Devuan repos; "maemo5" UI style is currently broken |- | Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || |- | D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || |- | Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || |- | MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || |- | Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || |- | Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. |- | Firewall || No || || [[User:Maemish]] || || Something with easy configuration. |- | Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ || |- |bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || |- | cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || |- | gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || |-|- | alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || |-|- | user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || |-|- | Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [https://www.foxtrotgps.org FoxtrotGPS] might be the easiest to adapt, it is already packaged in Devuan and works well on the Pinephone at least. |- | Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || |- | Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || |- | gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || |- | Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || |- | osso-clock || Yes (clock-ui) || clock and alarms application || pavel || || |- | freecell4maemo || No || freecell game || pavel || || |- | [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite || |- | Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel |- | OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working |- | Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ || |- | NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ || |- | Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ || |- | telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo. de3964647ca6875ed48fee000bc4dc0cd67b5caf File:2024-06-07-064926 800x480 scrot.png 6 232 1669 2024-06-07T20:59:36Z Arno11 61 wikitext text/x-wiki GUI 75ebc687f6257857cd417c34b00fa35ec1f0c809 File:2024-06-07-100831 800x480 scrot.png 6 233 1670 2024-06-07T21:22:56Z Arno11 61 wikitext text/x-wiki AceCombat3 49837eef872b7aff1492bcfb11ea4f9eac69aacb File:2024-06-07-065424 800x480 scrot.png 6 234 1671 2024-06-07T21:24:06Z Arno11 61 wikitext text/x-wiki Tekken3 a5295e3bb731a895c3e7c7572bd0780d6c06663c File:2024-06-07-065751 800x480 scrot.png 6 235 1672 2024-06-07T21:25:00Z Arno11 61 wikitext text/x-wiki GT1 77a68fd54e8bbd88c91f6a5a4b64b39500c07bd3 File:2024-06-07-070020 800x480 scrot.png 6 236 1673 2024-06-07T21:25:58Z Arno11 61 wikitext text/x-wiki Mana 1eab2e77896772f19030f55f716eb8eb35d3dcde Extras/pcsx rearmed 0 237 1674 2024-06-07T21:30:59Z Arno11 61 Created page with "{{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |c..." wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version. Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NSCT). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well. It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] cf2b903c6907b5d99788068dd9610a29dde8f9a8 1675 1674 2024-06-07T21:37:40Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NSCT). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well. It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] 21cb0354e4c073ac0f1dcfa7b83ddcb804372a11 1676 1675 2024-06-07T21:43:02Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NSCT). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well. It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] Fullscreen mode can be activated with 'F' key by default. Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] b4e2f0e9032cc0b1d8e6c361216a1078741c3b3b 1677 1676 2024-06-07T21:51:44Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NSCT). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well). It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] Fullscreen mode can be activated with 'F' key by default. Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Configuration == Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] 195ce19730c30af44e141ae7048208ad046b5833 1678 1677 2024-06-08T10:28:27Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well). It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] Fullscreen mode can be activated with 'F' key by default. Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Configuration == Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] 1eed84217b5bfcd14c511f7baf6e9fc929fb1272 1679 1678 2024-06-08T10:33:37Z Arno11 61 /* Configuration */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well). It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] Fullscreen mode can be activated with 'F' key by default. Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Configuration == Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory. (The correct typo is for example scph7502.bin) == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] 89608c72ec8686b8c2142a82165ec379a0ff188e 1680 1679 2024-06-08T10:34:08Z Arno11 61 /* Configuration */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well). It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] Fullscreen mode can be activated with 'F' key by default. Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Configuration == Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory. (The correct typo is for example 'scph7502.bin') == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] 6e13e50d8944be6cf79527dcfb9e841341d527fc 1681 1680 2024-06-08T10:42:43Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well). It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] Fullscreen mode can be activated with 'F' key by default. Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Configuration == Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory. (The correct typo is for example 'scph7502.bin') == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] 2bdff3f2620cd1c4c343a8bfecafbfa3f3cdb04c 1682 1681 2024-06-08T11:10:45Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working / Debian packaging is WIP |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key. 'back' is associated to 'e' key (hardcoded). [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well). It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] Fullscreen mode can be activated with 'F' key by default. Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Configuration == Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory. (The correct typo is for example 'scph7502.bin') == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] 17e3631ed50efd9d2493f1621bf3f58d9dbc112c 1685 1682 2024-06-29T20:15:14Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |category=Games |packager=[[User:Arno11]] }} Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste. It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards). The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment. == Status == WARNING: on N900 in the GUI, 'enter menu' is associated to 'backspace' key. 'back' is associated to 'e' key (hardcoded). [[File:2024-06-07-064926 800x480 scrot.png|500px|center]] * Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version. [[File:2024-06-07-065751 800x480 scrot.png|500px|center]] Without frameskip and sound, games run usually at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC). On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu. [[File:2024-06-07-065424 800x480 scrot.png|500px|center]] Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg Only buildin_gpu and gpu_unai are working (but really well). It is possible (not all games) to speed up and increase framerate using the 'fast forward' option. [[File:2024-06-07-100831 800x480 scrot.png|500px|center]] Fullscreen mode can be activated with 'F' key by default. Almost all configuration parameters are available from the GUI. === Tested Playstation/Psx/PsOne games=== Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution. [[File:2024-06-07-070020 800x480 scrot.png|500px|center]] == Configuration == Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory. (The correct typo is for example 'scph7502.bin') == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/games/pcsx/pcsx /game_dir/your_game.zip Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg On N900, to activate boost mode (720MHz or 805MHz): As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Implement sane default keys for the devices * Try to implement Maemo 5 -touch- UI [[Category:Extras]] 9a397ff9ca6f6d4121cbf75ceea3a4a5cf434a18 Development/Tasks 0 92 1683 1429 2024-06-26T09:54:19Z Wizzup 4 /* Applications */ wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || || |- | Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WORKS || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WORKS || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || DONE || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || || |- |} 84246bf20ef5df31f110ba6568841f06eb695c85 1684 1683 2024-06-26T11:24:10Z Wizzup 4 /* Applications */ wikitext text/x-wiki == Applications == This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! GH Bug ! URLs ! Notes |- | Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this |- | Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already! |- | libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || || |- | Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || |- | Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular || |- | Test phone calls on the N900 || Figure out cmtspeechdata magic || WORKS || [[User:Wizzup]], [[User:Sicelo]], Pavel || || || |- | Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WORKS || ? || || || |- |"hildonize" surf2 or create a simple "hildonized" webkit browser || See "Jib" || DONE || [[User:Wizzup]], dsc || || || |- | Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :) |- | osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || DONE || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress |- | Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || || |- | Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that |- | Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || |- | Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ || |- | hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc. |- | Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || || |- | Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || || |- | Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || || |- |} c09eb71cb234fc134c92e88d7cda07f0bc48ea14 Nokia N900 0 48 1686 1639 2024-07-12T21:05:50Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) (Note: eMMC swap is '''highly recommended''' and faster than SD card swap) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 6e3f4e5eeea66ac055a326c65f59cb254ed08e5b Development/Porting Packages 0 82 1687 1467 2024-07-14T21:31:21Z Norayr 36 wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/ * http://repository.maemo.org/extras-testing/pool/fremantle-1.3/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way. you need to have `sharutils` installed. (media-gfx/optipng in gentoo). * prepare a `48x48` png file. * optimize it: <pre>optipng -strip all</pre> * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages 0e0b765cc05571078bd635c3ed37b0739d6e84ef 1688 1687 2024-07-14T21:31:59Z Norayr 36 wikitext text/x-wiki = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it. # (TODO) = Porting existing Maemo Fremantle packages = Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be: # Check if someone already ported the package (if it in the repository? Is there an issue for it?) # Updating of the Debian packaging files/scripts. # Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc) # Fixing any compile errors/warnings due to more strict compile flags Source of the packages can be found at one of these places: * http://maemo.org/packages/ * https://garage.maemo.org/ * http://repository.maemo.org/extras/pool/fremantle/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/source/ * http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/ * http://repository.maemo.org/extras-testing/pool/fremantle-1.3/free/source/ = Example = == Getting the source package == Let's say we'd like to port a package "msid". it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre> get the latest version: <pre> wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz </pre> <pre> tar zxvf msid_0.4.8-2.tar.gz cd msid-0.4.8 </pre> == Creating new repo == init a git repo: <pre> git init git add * git commit -a -m "initial commit from fremantle sources" </pre> change content of `debian/compat` to `9`. edit <pre>debian/changelog</pre>. let's say the last release was: <pre> msid (0.4.8-2) unstable; urgency=low </pre> now the release should be: <pre> msid (0.4.8-2+leste1) unstable; urgency=low </pre> record your changes, add your name. look if <pre>debian/control</pre> dependency versions should be changed. == installing build dependencies== <pre> sudo apt build-dep . </pre> == building == <pre> dpkg-buildpackage -b -uc </pre> add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content: <pre> [DEFAULT] upstream-tag=%(version)s </pre> in <pre>debian/control</pre> file add (if not added) <pre> XSBC-Bugtracker: mailto:yourname@yourserver.am </pre> == icon == and the icon (this is not necessary if you port existing maemo5 package). it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way. you need to have `optipng` installed. (media-gfx/optipng in gentoo). * prepare a `48x48` png file. * optimize it: <pre>optipng -strip all</pre> * base64 encode it <pre> uuencode -m maeFat.png maeFat.png > maeFat.png.base64 </pre> * Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5) * Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>. * Add this to the XB-Maemo-Icon-26 field * Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image: <pre> uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64 </pre> == cli apps == if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used. [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement] [http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file] [http://samoff.com/random/maemo/cli_icon/ icons as images] this is how the icon looks in <code>ham</code>: [[File:Maemo-cli_icon_appman_sample_v002.png]] and this is the <code>48x48</code> size icon: [[File:Maemo-term_icon_v002_a001_48p.png]] its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here] or here: <pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0 d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4 MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2 inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8 orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34 VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6 +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44 kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7 rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f 5l7y6xMAAAAASUVORK5CYII= ====</pre> Also add the field: <pre>XSBC-Maemo-Display-Name: Photo light meter</pre> == pushing to maemo-leste-extras == go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository. ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when). push your code to the newly opened repo in <code>maemo/beowulf</code> branch. <code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based. <pre>$ git remote -v origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git remote add maemo git@github.com:maemo-leste-extras/msid $ git remote -v maemo git@github.com:maemo-leste-extras/msid (fetch) maemo git@github.com:maemo-leste-extras/msid (push) origin git@github.com:norayr/msid.git (fetch) origin git@github.com:norayr/msid.git (push) $ git push maemo main Enumerating objects: 176, done. Counting objects: 100% (176/176), done. Delta compression using up to 4 threads Compressing objects: 100% (86/86), done. Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done. Total 176 (delta 105), reused 141 (delta 85) remote: Resolving deltas: 100% (105/105), done. To github.com:maemo-leste-extras/msid * [new branch] main -&gt; main $ git checkout -b maemo/beowulf Switched to a new branch 'maemo/beowulf' $ git push maemo maemo/beowulf Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting: remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf remote: To github.com:maemo-leste-extras/msid * [new branch] maemo/beowulf -&gt; maemo/beowulf $ </pre> the repo needs to be tagged. <pre>git tag 0.0.1</pre> and then the tag has to be pushed: <pre>git push maemo 0.0.1</pre> in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally: <pre>git tag -d 0.0.1 git push maemo :refs/tags/0.0.1</pre> == phoenix == login https://phoenix.maemo.org/ the build sequence is: * source * binaries * repos find your project. let’s say https://phoenix.maemo.org/job/msid-source/ it has to have ‘build with parameters’ button on the left. if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/ that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console == wiki == add a wiki page about the package [https://leste.maemo.org/Category:Extras here]. links: https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard) = Forking Debian/Devuan packages = (TODO - Describe what branches need to be set up, Jenkins integration, etc) = Preparing package for the repositories = See https://leste.maemo.org/Development/Building_Packages b0c974ebb0aad08968445dc40841c529d839eb03 Extras/drnoksnes 0 238 1689 2024-07-15T11:20:45Z Arno11 61 Created page with "{{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |cate..." wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid. The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one. == Status == * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Try to improve sound in some games [[Category:Extras]] dc78a06a744dae98c1fd4eee932dcf1173556898 1691 1689 2024-07-15T11:27:33Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid. The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one. == Status == [[File:2024-07-15-124249 800x480 scrot.png]] * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Try to improve sound in some games [[Category:Extras]] 1e63899b85b231434d3ca926f135f378c5a104e0 1693 1691 2024-07-15T11:30:01Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid. The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one. == Status == [[File:2024-07-15-124249 800x480 scrot.png]] * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. [[File:2024-06-07-223207 800x480 scrot.png]] === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes. == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Try to improve sound in some games [[Category:Extras]] 09e187bda151f7c6b027459852e52a375b852562 1695 1693 2024-07-15T11:31:32Z Arno11 61 /* Tested Super Nintendo/ SNES games */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid. The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one. == Status == [[File:2024-07-15-124249 800x480 scrot.png]] * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. [[File:2024-06-07-223207 800x480 scrot.png]] === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes. [[File:2024-06-07-223735 800x480 scrot.png]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq == TODO == * Try to improve sound in some games [[Category:Extras]] b2d34ceadd677d3276b432a6ef0d96c670301f54 File:2024-07-15-124249 800x480 scrot.png 6 239 1690 2024-07-15T11:26:50Z Arno11 61 wikitext text/x-wiki Drnoksnes GUI 5380fa2bd0a58f0b47be73eba658c0dfc667b842 File:2024-06-07-223207 800x480 scrot.png 6 240 1692 2024-07-15T11:29:16Z Arno11 61 wikitext text/x-wiki Mario 8e7d820ad9d3323edb541a72da4912148cb9c0c2 File:2024-06-07-223735 800x480 scrot.png 6 241 1694 2024-07-15T11:30:59Z Arno11 61 wikitext text/x-wiki Kong 8b5ba650878f448abc739972e12b805971c1f3fb File:2024-06-07-224020 800x480 scrot.png 6 242 1696 2024-07-15T11:32:44Z Arno11 61 wikitext text/x-wiki Streetfighter cbb8863789bd9b3bb7d8dc2dfdcec197d54e9f02 Extras/drnoksnes 0 238 1697 1695 2024-07-15T11:33:14Z Arno11 61 /* Tips */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid. The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one. == Status == [[File:2024-07-15-124249 800x480 scrot.png]] * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. [[File:2024-06-07-223207 800x480 scrot.png]] === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes. [[File:2024-06-07-223735 800x480 scrot.png]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq [[File:2024-06-07-224020 800x480 scrot.png]] == TODO == * Try to improve sound in some games [[Category:Extras]] d1fccb1105a81ad6af21ffd6332eda4c2b52cb59 1698 1697 2024-07-15T14:52:49Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid. The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one. == Status == [[File:2024-07-15-124249 800x480 scrot.png]] * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. [[File:2024-06-07-223207 800x480 scrot.png]] === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes. [[File:2024-06-07-223735 800x480 scrot.png]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq [[File:2024-06-07-224020 800x480 scrot.png]] == TODO == * Try to improve sound in some games [[Category:Extras]] 4f2d8df711740a7a1e452576caaa7bb23376ac18 1699 1698 2024-07-15T15:01:57Z Arno11 61 wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4). The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one. == Status == [[File:2024-07-15-124249 800x480 scrot.png]] * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. In settings/Zoom, 'Scale to fit' is recommended to be able to switch between fullscreen and window mode easely. [[File:2024-06-07-223207 800x480 scrot.png]] === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes. [[File:2024-06-07-223735 800x480 scrot.png]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq [[File:2024-06-07-224020 800x480 scrot.png]] == TODO == * Try to improve sound in some games [[Category:Extras]] eacc2ac5d5fbdc4c1d4450ade1cefeba6d30201f 1700 1699 2024-07-15T15:21:09Z Arno11 61 /* Status */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4). The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one. == Status == [[File:2024-07-15-124249 800x480 scrot.png]] * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. In settings/Zoom, 'Scale to fit' is recommended to be able to switch between fullscreen and window mode easely. On N900 target framerate at '50-60 fps' works better than 'auto'. [[File:2024-06-07-223207 800x480 scrot.png]] === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes. [[File:2024-06-07-223735 800x480 scrot.png]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq [[File:2024-06-07-224020 800x480 scrot.png]] == TODO == * Try to improve sound in some games [[Category:Extras]] 86bf6fe8d8a567de0d687d0129e002ed0e37fe5d 1701 1700 2024-07-15T15:58:59Z Arno11 61 /* Tested Super Nintendo/ SNES games */ wikitext text/x-wiki {{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |category=Games |packager=[[User:Arno11]] }} DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste. It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4). The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one. == Status == [[File:2024-07-15-124249 800x480 scrot.png]] * SNES games are playable, with sound and input, running at 50-60 fps on N900. Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N. Keymapping and all other parameters can be modified directly from the GUI. In settings/Zoom, 'Scale to fit' is recommended to be able to switch between fullscreen and window mode easely. On N900 target framerate at '50-60 fps' works better than 'auto'. [[File:2024-06-07-223207 800x480 scrot.png]] === Tested Super Nintendo/ SNES games === Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, World Heroes. [[File:2024-06-07-223735 800x480 scrot.png]] == Tips == If (for some reason) the GUI is not working, it is possible to directly launch a game from command line: /usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path Default keymap is visible in /usr/games/drnoksnes.conf On N900, it could be useful to activate boost mode (720MHz or 805MHz). As root: echo 1 > /sys/devices/system/cpu/cpufreq/boost echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq [[File:2024-06-07-224020 800x480 scrot.png]] == TODO == * Try to improve sound in some games [[Category:Extras]] ff1b96635227dad0f28a4970c77fb4b89ea91803 Nokia N900 0 48 1702 1686 2024-07-17T10:21:08Z Arno11 61 /* More SWAP / SWAP activation */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 08cd2b19b00b2dad70d4b4f8a06ec042650d5436 1703 1702 2024-07-17T10:24:31Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works. |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone. |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>. |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 8b43d566a5e552209acec47bb957d73ec94ed42b 1704 1703 2024-07-17T10:27:41Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 5ba9cc806512c6aefd756bbe41b06d05e2409c5a 1705 1704 2024-07-17T10:37:54Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.1 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file: <pre>[HOME] radius = 0 radius_more = 0 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] aa56b49605850c6e69dc6ab9a5353c1a75ffdc7f 1707 1705 2024-09-14T19:58:49Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805-850MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 850MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] bd0dd73f477e80e05b8fff475d3776c1ec5d6d55 1708 1707 2024-09-14T20:01:41Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. ('''Note:''' it is recommended to dist-upgrade to -devel to enable more features) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] f556918fe22c2f19fac09f0f9901070403b12e2c 1709 1708 2024-09-14T20:07:46Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. '''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900 in /etc/apt/sources.list ('''Warning:''' don't remove other sources in this file) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 6962b4e8fc8882eb80669b498ad2383a9e3c1e78 1710 1709 2024-09-14T20:09:34Z Arno11 61 /* SD Card and first boot */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. '''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding <pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre> in <pre>/etc/apt/sources.list</pre> ('''Warning:''' don't remove other sources in this file) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation === Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 31da2f76f758603ed2314719e454ac8a9bcc94cc 1711 1710 2024-09-14T20:15:29Z Arno11 61 /* More SWAP / SWAP activation */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. '''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding <pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre> in <pre>/etc/apt/sources.list</pre> ('''Warning:''' don't remove other sources in this file) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation (testing purpose) === ('''Note: SWAP is already activated by default''') Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol) Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 94b05ddf3ff8fd9dd6a105602fd32ec82e177db6 1712 1711 2024-09-14T20:17:23Z Arno11 61 /* Voice Calls / SIP Calls */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. '''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding <pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre> in <pre>/etc/apt/sources.list</pre> ('''Warning:''' don't remove other sources in this file) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation (testing purpose) === ('''Note: SWAP is already activated by default''') Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d267c47da22ab8f705709edd39e66e1b5ff1b05c 1713 1712 2024-09-14T20:20:10Z Arno11 61 /* Status table */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. '''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding <pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre> in <pre>/etc/apt/sources.list</pre> ('''Warning:''' don't remove other sources in this file) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation (testing purpose) === ('''Note: SWAP is already activated by default''') Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] d1f6c0b58607094838400a01b0c1886b5e46988c 1714 1713 2024-09-14T20:26:57Z Arno11 61 /* Overclocking */ wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking (optional) == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. '''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding <pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre> in <pre>/etc/apt/sources.list</pre> ('''Warning:''' don't remove other sources in this file) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation (testing purpose) === ('''Note: SWAP is already activated by default''') Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 06490daaedecc4c44dda83b505ccf052e50cad65 1715 1714 2024-09-14T20:36:17Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |media=microSDHC (up to 512GB) |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking (optional) == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. '''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding <pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre> in <pre>/etc/apt/sources.list</pre> ('''Warning:''' don't remove other sources in this file) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation (testing purpose) === ('''Note: SWAP is already activated by default''') Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 0d7c7bf992f1c14cdd6c334101834735f3f56df8 1716 1715 2024-09-14T20:40:44Z Arno11 61 wikitext text/x-wiki {{Infobox Device |image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]] |manufacturer=Nokia |codename=Rover, RX-51 |dimensions=110.9mm x 59.8mm x 18mm |release_date=2009-11-11 |category=Supported |soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A |dram=256 MB Mobile DDR |power= |lcd=800x480 3.5" Resistive TFT |video=PowerVR SGX530 |audio= |network=WL1251 |storage=32GB |usb=Micro USB 2.0 Slave |camera= |sensors= |other= |headers= |battery=1320mAh |sw_kernel=6.6 |sw_serial=Yes, UART under battery, 2.7V max! |sw_charging=Yes |sw_usb_slave=Gadgets only |sw_usb_host=With hacks |sw_touchscreen=Yes, single-touch |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi= |sw_tv=Yes |sw_3daccel=Yes, closed driver |sw_vibration=Yes |sw_audio=Yes (complex, ucm, no speaker protection) |sw_calls=Yes |sw_sms=Yes |sw_wifi=Yes, firmware required |sw_ethernet= |sw_irda=Yes, actually CIR, not IrDA |sw_2g3gdata=Yes |sw_4gdata= |sw_bluetooth=No |sw_fmtx=Yes |sw_fmrx=No |sw_nfc= |sw_accelerometer=Yes |sw_compass= |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=Yes |sw_agps=No |sw_frontcam= |sw_backcam= |sw_idlepower=160mW (WIP) |sw_standbytime= }} == Installation == The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone. === Image installation === * Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/ * Image archive: https://maedevu.maemo.org/images/n900/ dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613) === Bootloader (U-Boot) setup === ==== Quick ==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode): 1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF 2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test. 3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... </code> and the connect Nokia N900 to the PC. you will then get a message like so: <code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode USB device product string: Nokia USB ROM USB device serial number string: (not detected) Detected USB device: (not detected) Waiting for ASIC ID... Detected OMAP3430 chip (revision 87) Device: (not detected) HW revision: (not detected) NOLO version: (not detected) Kernel version: (not detected) Initfs version: (not detected) Software release version: (not detected) Content eMMC version: (not detected) Root device: (not detected) USB host mode: (not detected) R&D mode: (not detected) Switching to NOLO mode... Sending OMAP memory boot message... Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Load image: File: test/u-boot-2013.04-2.bin Image type: kernel Image size: 212864 bytes Sending image header... Sending image... 100% [#################################################################] Done </code> 4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as: <code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher Not a local device Waiting for USB device... Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode USB device product string: Nokia N900 (Update mode) USB device serial number string: MUN233033 Detected USB device: RX-51 Initializing NOLO... Device: RX-51 HW revision: 2204 NOLO version: 1.4.14 Kernel version: 2.6.28-20101501+0m5 Initfs version: (not detected) Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND Root device: flash USB host mode: disabled R&D mode: disabled Booting kernel with default cmdline... </code> This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. To flash u-boot permanently, you can issue the following command '''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''') <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code> ==== Existing Fremantle ==== If you have a functional Fremantle installation, you can follow these steps instead: 1. Install "U-Boot with kernel 2.6.28-omap1" 2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. 3. Add Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" && ITEM_NAME="Maemo Leste" ITEM_KERNEL="uImage" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed) === Increase filesystem size === Run the following script: <code>/etc/expandcard.sh</code> == Serial == http://n900.elektranox.org/serial-adapter.html http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports Use this command line (specifically the part after rootwait): <pre> root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug </pre> == Notes == === Speakers === * Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution. === Torch === The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera. In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage. <source lang="shell-session"> Install the prerequisites $ sudo apk add i2c-tools Unload the driver in case it is already loaded. We will use i2c manually $ sudo modprobe -r adp1653 Enable the chip $ echo 88 | sudo tee /sys/class/gpio/export $ echo "out" | sudo tee /sys/class/gpio/gpio88/direction $ echo 1 | sudo tee /sys/class/gpio/gpio88/value Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED Values between 1 and 7 enable the red privacy/recording led, with different intensity 0x8 is the lowest torch intensity, and we do not recommend going above it $ sudo i2cset -y 2 0x30 0x0 0x8 Turn the torch off $ sudo i2cset -y 2 0x30 0x0 0x0 Disable the chip $ echo 0 | sudo tee /sys/class/gpio/gpio88/value $ echo 88 | sudo tee /sys/class/gpio/unexport </source> == Power Management == This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545 Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170 * https://wiki.maemo.org/N900_Hardware_Power_management * https://wiki.maemo.org/N900_Hardware_Power_Consumption Run: modprobe ledtrig-default-on And: echo default-on > /sys/class/leds/debug::sleep/trigger To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes. Currently it does not yet reliably reach any sleep modes. See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm == Battery calibration == Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level. Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet. * Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough). * Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again). * You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable. * When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound. * Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting. * If you still see "Battery not calibrated" message, reboot the device. After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining. Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours. Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery. == Accessing MTD == List devices: cat /proc/mtd Mount: apt install mtd-utils mkdir -vp /mnt/fremantle ubiattach -p /dev/mtd5 mount -t ubifs ubi:rootfs /mnt/fremantle == Overclocking (optional) == '''Overclocking is now available in -devel using cpufreq boost.''' It uses 250-500-550-600-720-805MHz frequencies To enable it, edit: <code>/sys/devices/system/cpu/cpufreq/boost</code> And replace 0 by 1. It is possible to customise max/min/available frequencies editing files in: <code>/sys/devices/system/cpu/cpu0/cpufreq/</code> '''No other steps are needed and updates/upgrades work with boost mode.''' Installing cpufrequtils is useful to change frequency governors. Prefer "conservative" instead of "ondemand" governor. "Performance" governor locks N900 at 805MHz. As root <code>cpufreq-set -c 0 -g conservative</code> '''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor''' == Overclocking - Old method for testing purpose == To be able to overclock two steps are needed: 1) From Fremantle: add new Maemo Leste menu item (run as root): cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" && ITEM_NAME="Maemo Leste Overclock" ITEM_KERNEL="uImageX" ITEM_DEVICE="${EXT_CARD}p1" ITEM_FSTYPE="ext2" EOF u-boot-update-bootmenu 2) From Maemo Leste (run as root): <code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code> <code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code> (wait for a few seconds...) <code>chmod +w /home/user/omap3-n900.dts</code> (then the funny part...) <code>nano /home/user/omap3-n900.dts</code> (Now it's time to modify frequencies and voltage: be careful to do exactly the same) Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };" New opp-table for example: <pre>opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = < 0x05 >; phandle = < 0x03 >; opp1-250000000 { opp-hz = < 0x00 0xee6b280 >; opp-microvolt = < 0xee098 0xee098 0xee098 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp2-500000000 { opp-hz = < 0x00 0x1dcd6500 >; opp-microvolt = < 0x106738 0x106738 0x106738 >; opp-supported-hw = < 0xffffffff 0x03 >; opp-suspend; }; opp3-600000000 { opp-hz = < 0x00 0x23c34600 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp4-720000000 { opp-hz = < 0x00 0x2aea5400 >; opp-microvolt = < 0x124f80 0x124f80 0x124f80 >; opp-supported-hw = < 0xffffffff 0x03 >; }; opp5-850000000 { opp-hz = < 0x00 0x32a9f880 >; opp-microvolt = < 0x149970 0x149970 0x149970 >; opp-supported-hw = < 0xffffffff 0x03 >; }; };</pre> Then <code>ctl+x</code> to save and close. And still as root: <code>rm /home/user/omap3-n900.dtb</code> <code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code> Check your kernel version: <code>uname -r</code> For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30 In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30) As root: <code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code> <code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code> That's it ! Now reboot and select "Maemo Leste Overclock in bootmenu". ('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed)) == Tips / Tweaks == === SD Card and first boot=== To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality. '''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading. First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere). Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes). Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated. Then reboot. '''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding <pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre> in <pre>/etc/apt/sources.list</pre> ('''Warning:''' don't remove other sources in this file) === Gnome-tracker in $HOME === By default trackers are indexing the entire $HOME folder, causing severe slowdown. To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder: <pre>touch /home/user/.nomedia</pre> === Deactivating apt-worker === Run: <pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre> === Removing 250MHz CPU frequency (example) === Install cpufrequtils. Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre> === More SWAP / SWAP activation (testing purpose) === ('''Note: SWAP is already activated by default''') Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly): <pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot) '''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing: <pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre> (It takes some time...) <pre>sudo chmod 600 /swapfile</pre> <pre>sudo mkswap /swapfile</pre> <pre>sudo swapon /swapfile</pre> To make the change permanent open: <pre>sudo nano /etc/fstab</pre> And add this line: <pre>/swapfile swap swap defaults 0 0</pre> To check if the swap is active: <pre>sudo swapon --show</pre> === Tweaking Transitions === Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini. As root <code>nano /usr/share/hildon-desktop/transitions.ini</code> See Fremantle documentation for perfect setup. '''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file: <pre>[HOME] radius = 1 radius_more = 2 </pre> === Web browsing === Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak- <pre>sudo apt install links2</pre> To use it in graphical mode, run in terminal: <pre>links2 -g</pre> or press the hildon desktop icon. Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot- Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again. === Video playing === Video playing is working fine using SMPLAYER: - In Options / Preferences / General: Media engine: Other: /user/bin/mplayer - In Options / Preferences / Video: Output driver: xv (0 - OMAP Textured Video) Only unable Double buffering and Disable screensaver - In Options / Preferences / Audio: Output driver: pulse (or User defined) Disable everything else Channel by default: 2 (Stereo) High speed playback: Auto - In Options / Preferences / Performance: Unable Allow frame drop Hardware decoding: None Prefer 360p - 480p max video format (With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings) === Voice Calls / SIP Calls === - Dist-upgrade to -devel (not working without) Now SIP calls and SIP messages are working out of the box using Twinkle. Voice calls are now working out of the box as well. If sound is distorted, run: <code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code> == Status table == {| class="wikitable" ! Feature ! Leste supported ! Notes |- | Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux |- | Serial || Yes || Requires special hardware |- | Charging || Yes || |- | Wireless || Yes || Firmware is non-free |- | Ethernet || N/A || |- | Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible |- | Keyboard || Yes || |- | Screen || Yes || |- | 3D Acceleration || Yes || closed PowerVR driver |- | Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works |- | Touchscreen || Yes || Resistive |- | Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX |- | Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer. |- | 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/ |- | 4G data || N/A || no hardware |- | SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel. |- | Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone |- | SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP |- | Bluetooth || No || Driver needs some work |- | FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code> |- | FM Receiver || No || Depends on working Bluetooth stack |- | Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900 |- | Compass || N/A || No hardware |- | Gyro || N/A|| No hardware |- | Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix' |- | Ambient Light Sensor || Yes || |- | Vibration Motor || Yes || |- | HDMI-out || N/A || No hardware |- | TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code> |- | GPS || Yes || |- | Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched) |- | Camera || No || Needs complex v4l work, no leste integration |- | Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode |} [[Category:Device]] 06490daaedecc4c44dda83b505ccf052e50cad65 Development 0 61 1706 1620 2024-08-04T11:21:36Z Vaino 70 deb.debian.org does not have stretch anymore wikitext text/x-wiki Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192) * There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker * The day-to-day development and user chatter mostly takes place in the [[IRC channel]] * We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html] * This wiki: for documenting the status of various long-running projects, status per device, etc. == Task Summary == For current (semi) impactful tasks, see [[Development/Tasks]] == Codename == * Maemo Leste is currently based on Devuan Chimaera, which is based on Debian Bullseye. == Guides == * [[Development/Porting Packages]] * [[Development/Building Packages]] * [[Development/Modified Software]] * [[Development/Device Bringup]] * https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide == Technical == All our git repositories can be found here: https://github.com/maemo-leste === Jenkins === To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/ === Developing on a device === All development software and tests end up in 'chimaera-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line: deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free droid4 The exact line might depend on your device; just copy the maemo chimaera line and change chimaera to chimaera-devel - for example, if you're not on a mapphone (droid) device, you probably don't want the droid4 component in the line. Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM) The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]]. === Building a Maemo Leste image === See https://leste.maemo.org/Image_Builder === List of Programs/Daemon specific to Maemo === https://leste.maemo.org/Development/Daemons === Crossbuilding === Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server. Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. # Make a container for our development system DIR=/var/lib/container/stretch sudo apt-get install qemu-user-static debootstrap systemd-container && sudo debootstrap --arch=armhf stretch $DIR http://archive.debian.org/debian && echo "strech_cross" | sudo tee $DIR/etc/debian_chroot && sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR # Setup build environment inside the container cat >> ~/.bashrc << EOF && export PKG_CONFIG_PATH=/usr/lib/pkgconfig export CC=arm-linux-gnueabihf-gcc export JOBS=$(grep processor /proc/cpuinfo | wc -l) EOF dpkg --add-architecture armhf && apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates && cat >> /etc/apt/sources.list << "EOF" && deb http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 deb-src http://deb.debian.org/debian stretch main deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900 EOF wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc && apt-key add testing-key.asc && rm -f testing-key.asc && rm -f /var/cache/apt/archives/*.deb && apt-get update && exec bash # Build Xorg for Nokia N900 apt-get source xserver-xorg-core && cd xorg-server-1.19.2 && wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch && mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches && echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series && apt-get -y build-dep -a armhf . && time dpkg-buildpackage -aarmhf -j$JOBS -b && echo OK || echo FAIL To login the container later: sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch To remove the container: sudo rm -fr /var/lib/container/stretch === Cross-distro solution for development inside an ARM/ARM64 chroot on a PC === It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices. 1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]: $ sudo apt-get install qemu-user-static binfmt-support The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''': $ sudo update-binfmts --display qemu-arm qemu-arm (enabled): package = qemu-user-static type = magic offset = 0 magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00 mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff interpreter = /usr/bin/qemu-arm-static detector = 2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it: $ mkdir leste-arm64 $ cd leste-arm64 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf - 3. From the same directory, configure the chroot with a few resources from your host system: $ sudo mount -t proc proc proc $ sudo mount -o bind /dev dev $ sudo mount -o bind /dev/pts dev/pts 4. From the same directory, create a symlink for the mount table: $ sudo ln -s /proc/mounts etc/mtab 5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user: $ sudo LC_ALL=C chroot . /bin/su - user You'll now be ready to use your Maemo Leste ARM64 development environment: $ uname -m aarch64 Once you have finished with it, you can exit and unmount the resources you previously mounted: $ exit $ sudo umount dev/pts dev proc === Localization === See [[Localization]] === TODO === * Discuss where people look to pick up issues (clear answer is the bugtracker, but still) * How people can make changes and how to send them in 237a0d3d30c7de223344fc7ae22ab47999c36b72 File:Motorola Droid 3 Leste Chimera.jpg 6 243 1717 2024-09-17T19:56:49Z GaryM0101 68 wikitext text/x-wiki Motorola Droid 3 Leste 360e9656ad3440b86b437ac1ac88273434488173 Motorola Droid 3 0 151 1718 1540 2024-09-17T20:13:13Z GaryM0101 68 Added image and modified download link wikitext text/x-wiki {{Infobox Device |image= [[File:Motorola Droid 3 Leste Chimera.jpg|thumb]] |manufacturer=Motorola |codename=Solana XT862 / XT860 |dimensions=todo |release_date=todo |soc=TI OMAP4430 |dram=512MB DDR2 |power= |lcd=960x540 4" |video=PowerVR SGX540 |audio= |network= |storage=16GB flash |usb= |camera= |sensors=todo |other= |category=Supported |sw_kernel=6.1.9 |sw_serial=Yes, [[#Serial Cable|special cable]] |sw_charging=Yes |sw_usb_slave=Yes |sw_usb_host=Yes |sw_touchscreen=Yes |sw_keyboard=Yes |sw_screen=Yes |sw_hdmi=No |sw_tv= |sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed) |sw_vibration=Yes |sw_audio=Yes |sw_calls=No (needs modem work) |sw_sms=No (needs modem work) |sw_wifi=Yes |sw_ethernet= |sw_irda= |sw_2g3gdata= |sw_4g=No |sw_bluetooth=todo |sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers |sw_fmrx= |sw_nfc= |sw_accelerometer=Yes |sw_compass=Yes, no integration |sw_gyro= |sw_proximity=Yes |sw_als=Yes |sw_gps=No (needs modem work) |sw_agps=No |sw_frontcam=No |sw_backcam=No |sw_idlepower= |sw_standbytime= }} '''This device is called "Motorola Milestone 3" outside of the US.''' == Installation == Hardware requirements: * Droid 3 with fully charged battery * MicroUSB cable * MicroSD card Software requirements: * Host Linux system * Android Tools: fastboot adb Download latest Chimera release from https://maedevu.maemo.org/images/droid3/ # Latest maemo-leste-1.0-armhf-droid3-20240908.img.xz Download from https://github.com/tmlind/droid4-kexecboot.git # droid4-kexecboot.img Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!) Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device. Now, flash the Maemo Leste image to your sdcard. == Notes == IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh on bionic-clown-boot Device is still heavy work in the progress. The following is known not to work: * Brightness control (screen is always max brightness) * Keyboard backlight * Modem interrupts, it is visible on USB but other communication with it doesn't work * pstore (needs figuring out what the reserved memory is on Android) * See if we can use 512MB ram instead of 509MB (see dts) * <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15) * <s>touchscreen buttons do not work yet</s> (fixed on 5.15) * keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4 Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x) It might be a power-management-related issue, or a GPU issue (last log line shows something about OMAP complaining about DRM), or something else. The emergency shell works just fine with no hangs at all. Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock. [[Category:Device]] dddc8d7ad7058ab12384dca3d2620e3f7628b852 Leste FAQ 0 62 1719 1104 2024-09-19T21:12:41Z Sicelo 5 fix typos; drop systemd vs openrc section since we are somewhat willing to support systemd in future wikitext text/x-wiki {{Stub}} === What is Maemo Leste? === Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs. It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel. In Maemo Leste, closed-source packages that originate from Fremantle have been reverse engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle. Building on top of an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. However Leste utilises Devuan's package repositories, meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream immediately available for installation in Maemo Leste. All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users. === Why do we need another mobile operating system? === Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone. === Why not add/extend new packages to Fremantle instead? === Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few. Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian. Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle. We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier. === Does Maemo Leste use Halium? === No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident. === What is mainline Linux? === Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases. === What's wrong with Android (vendor) kernels? === The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is likely not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits. === Why is it important to run mainline Linux? === Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline]. === Does Maemo Leste run with pure mainline Linux? === The primary devices that we support can run with a pure mainline Linux kernel. However right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We continuously upstream our patches (for the kernel and other software) and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices. === Is Maemo Leste completely free? === Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software. Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required. === How does Maemo Leste compare with postmarketOS? === postmarketOS is mobile GNU/Linux distribution which runs mainline Linux kernels and also supports Android kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work. === How does Maemo Leste compare with PureOS? === Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk]). === How about other popular non-Android mobile Linux distributions? === The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided. One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution. Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland. Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], which favours device compatibility and ease of device porting, at the expense of software freedoms. === Why is Maemo Leste based on Devuan rather than Debian? === Convenience for developers, and a little bit of politics (but this is not really noticeable in the project). Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan. As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements. === Can Maemo Leste work with a Debian/systemd base? === Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Proof-of-concept work was started to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste. === musl libc kicks arse. Can I use Maemo Leste with musl? === We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS. === What devices does Maemo Leste work on? === Our current list of (semi) supported devices can be found here: [[:Category:Device]] Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet. Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms. Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided. === Can I run an alternative desktop environment or window manager instead of Hildon? === The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. For now, if you choose to do this, limited support will be provided, if any. Don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides. === Are ARM packages Thumb-compiled? === Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb === How to translate Maemo Leste into my language? === We have our translation source files on Weblate, so anyone can contribute. See our [[Localization]] page for more information. 8a12f140adcdb63ba687b2abbea8607d005e216b Status 0 64 1720 1533 2024-09-19T21:21:32Z Sicelo 5 wikitext text/x-wiki {{Stub}} For Device specific status pages, see See [[:Category:Device]] The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device {| class="wikitable" ! Feature ! Status ! Leste software ! Notes |- | Desktop environment || OK || hildon || hildon home, hildon desktop, . |- | [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || |- | [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only. |- | [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box |- | Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it, blueman-manager can be used || |- | [[Status/Browser|Browser]] || WIP || jib || due to CPU/RAM, N900 uses Dillo |- | [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM |- | Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste-upstream-forks/upower upower] || |- | [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv |- | LED control || OK || mce || Make sure the notifications are enabled in settings. |- | [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || |- | [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon || |- | [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? || |- | [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || |- | [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Works fine, theme might look a bit off on higher resolution displays |- | [[Status/Media Player|Media Player]] || WIP || OMP (open media player):listening to radio streams and local music/video works || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue] |- | [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer] |- | [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing] |- | [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] || |- | [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) || |- | [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo |} 6ce668573bab371e03a27079b08079e006205754